CS 561 – Software Engineering by lonyoo


									Software Engineering

  Interacting with consumer
So far…
 What is Software Engineering?

 Different software process models
  waterfall, incremental, spiral

 Importance of having specifications/requirements while
 In class activity: specifications/requirements
 The management spectrum: people, product, process,
 End users vs consumers
 Boehm’s W5HH principle
 What’s next?
In class activity
Yesterday you designed an online grocery store with no
Now 3 of you come up with some set of specifications for things
  that you want to see in an online grocery store
1) Like for eg: visual display of items (like we saw a few of you
    design yesterday)
2) Eg: that you want the grocery store to ask you questions and
    you don’t want to type in and just answer
In class activity
  3) Could be that you want the grocery items delivered and
    placed in your fridge :D
  4) Could be that you want it the touch and drag way rather than
    a mouse click
  5) Could be that you want this designed only for old people.

  Think wild and come up with any set of specifications
In class activity
 Now you have to explain to another person your idea
  without using a paper.

 The person sketches out the prototype based on your

 You then can tell the class what you visualized it to look like
  and how was it was designed. It could turn out just as you
  wanted or maybe way different.
In class activity
 5 min for requirements
 5 min to explain to the designer
 10 min for the designer
Then each of you say (both in the team) what you envisioned and
 how it complied to what you envisioned and if some parts did
 not turn out how you had expected mention what are those and
 what way of explaining would have made it better.
Problems with requirements?
 Consistency problem
 Completeness problem
 Ambiguity/lack of clarity problem
 ….

 Solution?
   Formal specifications…?
    You cant build a right system unless
    you understand what it should do
Use cases = the activities a system supports
  e.g.: tweet a vote report, view delays on map
 Entities = the kinds of objects that are involved in use cases
  e.g.: tweets, user accounts, polling locations, maps
 Attributes = the properties of the entities
  e.g.: tweets have: timestamp, text, sender
The four P’s
Effective software project management focuses on the four P’s:
  People, product, process and project.
1) People
2) Product
3) Process
4) Project
The four P’s
 People must be organized into effective teams, motivated to
  do high quality software work and coordinated to achieve
  effective communication.
 Product requirements must be communicated from customer
  to developer, partitioned (decomposed) into their
  constituent parts and positioned for work by the software
The four P’s
 The process must be adapted to the people and the product. A
  common process framework is selected an appropriate
  software engineering paradigm is applied, and a set of work
  tasks is chosen to get the job done.
 Finally the project must be organized in a manner that enables
  the software team to succeed.
The software process is populated by stakeholders who can be
  categorized into one of five categories:
a) Senior managers who define the business issues that often
    have a significant influence on the project
b) Project managers who must plan, motivate organize and
    control the practitioners who do software work
 Practitioners who deliver the technical skills that are necessary
  to engineer a product or application.
 Customers who specify requirements for the software to be
 End users who interact with software once released for
  production use.
   End users vs customers
 Software engineers communicate with different people. The
  most important are these:
 In some cases end users and customers are the same but for many
  projects customers and end users are different people working
  for different people, managers or even different organizations.
 Eg: excel might be used in bank or by a teacher to enter grades
End users vs customers
Customer is a person or a group who:
 Originally requested the software to be built.
 Defines business objective for the software.
 Provide basic product requirements
 Coordinates funding for the project.
End users vs customers
 End user on the other hand is a person or a group of people
 Will actually use the software that is built to achieve some
  business purpose
 Will define operational details of the software so the business
  purpose can be achieved.
       The product
A detailed analysis of software requirements would provide necessary
  information for estimates but analysis often takes weeks or even months
  to complete.
At a minimum the scope must be established.
Two important steps are:
 Software scope
 Problem decomposition
Scope is defined by answering the following questions:
 Context: how does software to be built fit into a large system or
  business context?
 Information objectives: what data objects are required for input?
 Function and performance: what function does the software
  perform to transform input data into output? Any special
  characteristics to be addressed?
 Problem decomposition:
 divide and conquer : partitioned to smaller problems -
The W5HH principle
 Why is the system being developed? Does the business
  purpose justify the expenditure of people, money and time?
 What will be done? Task set required for the project
 When will it be done? Establishing a schedule by identifying
  project tasks and hence setting up milestones
W5HH principle
 Who is responsible for a function? The role and responsibility
  of each member of the team must be defined.
 Where are they located organizationally? Not all roles and
  responsibilities reside within software practitioners. The
  customer, user and stakeholders also have roles.
W5HH principle
 How will the job be done technically and managerially? Once
  the product scope is established, a management and technical
  strategy for the project must be defined.
 How much of the resource is needed? The answer to this
  question is derived by developing estimates based on answers
  to earlier questions.
Three of a kind in a team
 Team leaders: motivation, collaboration, organization ability
 Project managers: problem solving, managerial identity,
  influence and team building.
 Designer: innovative
   What’s next?
 Each of you will be given 5 minutes to present your vision
 The rest of you can make notes and vote on the vision statement
  you like the best.You can vote for two of them. I will upload all
  the vision statements on the website for further reference
 In Friday’s class you will have to turn in your votes and explain
  the basis of your votes

Due Friday midnight: Insights you have drawn from this in-class
(could be about collaboration , design) : one page

To top