Requirements - IT210 Software Engineering

Software Engineering
Spring Term 2016
Marymount University
School of Business
Administration
Professor Suydam
Week 3
1
Review Case Study 1
Functional Requirements
Quiz Chapters 1-3
Chapter 4 Software Process Models
Start Mini-Project 1 – create schedule in MS Visio
Quiz 1
2
3
4
In software engineering (and systems engineering), a functional requirement defines a function
of a system and its components. A function is described as a set of inputs, the behavior, and
outputs (see also software).
Functional requirements may be calculations, technical details, data manipulation and processing
and other specific functionality that define what a system is supposed to accomplish. Behavioral
requirements describing all the cases where the system uses the functional requirements are
captured in use cases. Functional requirements are supported by non-functional
requirements (also known as quality requirements), which impose constraints on the design or
implementation (such as performance requirements, security, or reliability). Generally, functional
requirements are expressed in the form "system must do <requirement>", while non-functional
requirements are "system shall be <requirement>".
5
6
7
8
It is a description of :
• what tasks need to be performed
• in what sequence
• under what conditions
• by whom to achieve the “desired results.”
9
Do we need a process if the project
requires just 1 person or at most
two people?
Why? -- Why not ?
As projects got larger and more complex.
(earlier, we introduced “simplification”, “better tools”, & “process”)




Needed to clarify and stabilize the requirements
Needed to test more functionalities
Needed to design more carefully
Needed to use more existing software & tools
• Database
• Network
• Code control
 Needed more people to be involved
12
We now need to “Define”:





the set of tasks that need to be performed
the sequence of flow of the tasks
the input and the output from these tasks
the pre-condition and post-conditions for each task
The people & skills needed to perform the tasks
13

The earlier “simple” process was employed by many for years without
formally embracing other important development activities such as
requirements analysis, design, formal testing, or packaging.

The recognition of the need for formal processes was initially driven by
failures in developing large complex software --- (later shown by Chaos
reports)




Waterfall : earliest process and coping with no process
Incremental : coping with decomposing the large systems
Spiral : coping with risk management
Rational Unified Process : coping with different task and
managing through project phases
14
In order for process models to be more than just a “guideline,” it
must include a list of conditions or requirements that define the:
- entry criteria prior to performing
an activity in a process.
- exit criteria before an activity in the
process is deemed completed.
 Software Development and Software Support may be done
with very little process or with very sophisticated, well
defined, well organized and well executed processes.
 How mature is your software engineering organization and
do you need to improve?
 ISO (ISO 9000 series) and SEI (Software Engineering Institute
at Carnegie Mellon) are two leading organizations that help
in the process assessment
21
In 2001, CMM was upgraded to CMMI (CMM Integrated).
Started with multiple, major aspects to CMMI:




Systems engineering
Software engineering
Integrated product and process development
Supplier sourcing
This is a start – there will be several subordinate tasks
23
1. Discuss one advantage and one disadvantage of the waterfall process.
Ans:
An advantage is that it provided a clear way to track the stages of development for the project managers.
A disadvantage is that it provided very little task overlapping, is sequential, and is single iteration.
Page: 59-60
2. What is the goal of a software process model?
Ans: Goal of software process model is to provide guidance for a systematic way to coordinate and control
the tasks that must be performed in order to achieve the end software product and the associated
software project objectives.
Page: 58-59
3. What are the four quadrants in a spiral model? Trace the requirements set of activities through each
quadrant.
Ans: The four quadrants are i) plan next phase, ii) determine objectives, alternatives, and constraints, iii)
evaluate alternatives, identify and resolve risks, and iv) develop, verify next level product
The requirement plan is done during the i) plan next phase and ii) determine objectives phase. The
requirements prototype is done during the iii) evaluate alternatives phase. The requirements specification
is done during the iv) develop next-level product phase.
Page: 63
24
4. What is an entry and exit criteria to a process?
Ans: Entry criteria describe and list all the conditions and material that must be met prior to starting a
process or an activity.
Exit criteria describe and list all the conditions and material that must be met prior to terminating a
process or an activity.
Page: 68-69
5. What motivated the software engineers to move from the waterfall model to incremental or spiral
model?
Ans: The need to develop multiple components, to overlap the development, and to be more
evolutionary lead to incremental process and spiral process. Also, the need to be more risk-averse led to
the spiral model.
Page: 63-64
6. What are the major concepts that drove the Rational Unified Process framework?
Ans: It is a process framework that promotes iterative and incremental development.
Every activity of product development (e.g. requirements or design) goes through several phases.
Page: 64-65
25
7. What are the 4 phases of Rational Unified Process?
Ans: The four phases are:
• inception
• elaboration
• construction
• transition
Page: 65
8. List all of the key processes addressed by SEI’s CMM model. Which ones are required for maturity level 2?
Ans:
Level 2:
Requirements Management
Software Project Tracking & Oversight
Software Quality Assurance
Software Project Planning
Subcontract Management
Software Configuration Management
Level 4:
Quantitative Process Management
Software Quality Management
Level 5:
Defect Prevention
Technology Change Management
Process Change Management
Level 3:
Organization Process Focus
Training Program
Software Product Engineering
Peer Reviews
Organization Process Definition
Integrated Software Management
Intergroup Coordination
Page: 71-72
26
9. How many process areas, in total, are included in SEI’s Software CMMI? List those that fall into the
engineering category and the support category.
Ans: There are a total of 25 process areas in CMMI.
•
Those that fall into the Engineering category are:
• Requirements Development
• Requirements Management
• Technical Solution
• Product Integration
• Verification
• Validation
•
Those that fall into the Support category are:
• Configuration Management
• Process and Product Quality Assurance
• Measurement and Analysis
• Organizational Environment for Integration
• Decision Analysis and Resolution
• Causal Analysis and Resolution
Page: 73
27