Professional Documents
Culture Documents
------------------------------------------------------------------------------------------------------Now, teams scattered around globe, components acquired from others, open
source parts, services found on Web while before everyone under one head progra
mmer in one place
SE Central Themes: big programs, complexity of thousands of little detai
l to be taken care of, software evolution (software is long lived), development
must be efficient, done by a team, software effectively support users, involves
different disciplines (biology, chemistry, domain-specific information)
Software Development Lifecycle: process by which the creation of softwar
e is managed, from inception to retirement; aka (software lifecycle, software de
v process, [variations])
Goals of a process
Repeatable - you can do at least as well as in the previous time
(for process)
Estimatable - how long it'll take to develop the project and how
much it'll cost
------------------------------------------------------------------------------------------------------Lifecycle Terminology
Phase: a grouping of conceptually related activities in software
lifecycle (implementation, compiling, unit tests)
Milestones: discrete events during lifecycle signalling achievem
ents (req doc created, requirement doc signed off, agreed by developer, unit tes
ts for each fx completed - yes or no)
Artifact: something that is generated by the development process
(any tangible output)
Deliverable: type of artifact that is deliverable to the client
80s Waterfall Method
Traditional way to conceptualize the baseline lifecycle that was
initial software lifecycle model
WATERFALL MODEL SLIDE: each box is a phase, arrows means moving
to next phase, V&V=verification and validation
Document driven, planning driven, heavyweight (takes a lot of ti
me sticking to process); planning upfront which heavy contracts are signed, we k
now we reached different milestones in this model
Problems with Waterfall Method
Heavy process - lots of paperwork and management oversight, can'
t make much changes in documentation or errors - there's no going back in the do
cument easily
------------------------------------------------------------------------------------------------------Phase: Project Management is concerned and ensuring that software is del
ivered on time, within budget and accordance with requirements; we need this bec
ause there are budgets and constraints; hard because budget and constraints are
imposed on you by external
Phase: Requirements yields a description of the desired systems, or the
functions, possible extensions, required documentations (user manuals), performa
nce requimrents and feasibility study (what are the big risks, is something diff
icult to implement) -> requirement specification document; in court this becomes
a contract and holds a legal status; stakeholder is EVERYONE using the process
Phase: Design in its earliest decision is captured in software architect
ure; then breaking high-level pieces (decomposition) into parts and components > design specification document in UML diagrams; it's intertwined with requireme
nts (twin peaks model)
Phase: Implementation is focused on individual components - goal is work
ing flexible robust software not bag of tricks; present-day languages have modul
es or class concepts (C++ / Java)
Phase: Testing is answering whether software is doing what its supposed
to do; are we building the right system (validation), testing happens on day 1,
which his built in
Phase: Maintenance is correcting errors found after software delivered a
nd adapting the software
------------------------------------------------------------------------------------------------------Distribution of Effort Per Phase (in man hours):
Most Expensive: Maintenance because the life time is in years, m
uch larger than building the software, low level over years is much more than bu
ilding the software product (50%)
Second most Expensive: Testing (45%), thinking about the code an
d what is the correct reponse when I give it the correct input, when should I ge
t a failure?
There after: Coding, Design, Requirements, Specification
Rule of thumb: 40-20-40 distrubtion of effort (design, coding, t
esting)
Concerning trend: enlarge requirements specification/design slot
s; reduce test slot
------------------------------------------------------------------------------------------------------Software Ethics
Manager wants to ship without testing, what do you do? (when lif
e can be at risk)
------------------------------------------------------------------------------------------------------Summary:
Definition of software engineering
Themes and concerns of SE
Lifecycle activities
Waterfall model
Distribution efforts
Ethical principles
================================================================================
=============================
Specification Languages:
*Structured English*, Regular Expression, Decision Table, Finite state a
utomata
Common Pitfalls:
Describe what task the system does and implmentatino is how the system d
oes the task
Hidden requirement: "they're obvious!"
Different backgrounds - "what's so hard to understand here?"
Omitting stakeholder
IEEE Standard 830
1. Introduction
1.1 Purpose
1.2 Scope
1.3 Defintion, acroynms, and abbreviations
1.4 References - what documents are you using
1.5 Overview - what's in the rest of the document, where can i f
ind blah
2. General description
2.1 Product perspective
2.2 Product function
2.3 User characteristcs - who's using the system (peer group, an
d professor)
2.4 Constraints - has to be done in Java
2.5 Assumptions and dependencies
3. Specific requirements
3.1 External interface requirements
3.1.1 User interfaces
3.1.2 Hardware interfaces
3.1.3 Software interfaces
3.1.4 Comm. interfaces
3.2 Functional requirements
3.2.1 User class 1
3.2.1.1 Functional req 1.1
3.2.2 User class 2
3.3 Performance requirment
3.4 Design constraints
3.5 Software system attributes
3.6 --??-Requirements Validation
Demonstrating that requirements define the system that the customer real
ly wants
Requirements mangement
Identifcation numbering (verision ifnormation)
Requirements change mangemnt (CM)
Requirements traceability
Where is requirement implemented, do we need this, what ist he i
mpact, which requirement does this test case cover?
Summary:
Terminology (3 def)
Challenging for requirement engineering
Quality attributes
- Requirements
- Specification
Types of requimrents
Process of requimrents engineering
================================================================================
=============================
Management occurs in all phases
Project management occurs before requirement management
Software project mangement: on time, within budget, accordance with requ
irements
A process is not static
Process must be repeatable
Goal: Improve on the software management
Software management is uniquely flexible, complex, and dev. process is n
ot standardized
Many software projects are "one-off" projects (small variations)
Input: Software requirements
Output: Project Management Plan
3 main activities in this phase:
planning: developing master plan, where objectives are met (cost
estimation, schedule/milestone, staffing decision, develop more plans)
monitoring and control: money spent (in terms of effort), schedu
le tracking milestone, quality of artifacts generated, manage risks to success o
f the project
termination analysis: summarize info about project for process i
mprovement (gather proj. info, adjust process as necessary)
Effort vs Duration
Metrics, Measurements, Models
Objective and quantifiable - use numbers and actual measurement
~30-~35 the metrics
Measurements
Objective: clear measurement
Reliable: keep doing over and over again
Two Types of measurements
Direct:
Indirect:
Why do we need cost estimation?
One of the more important metrics, need to measure effort
Milestones shoud be T or F
QA Plan, deliverable product and intermediary steps are in check
Summary:
Role of project management and planning in the process
Metrics, measurements and models
Primary management activities
Components of project management (8 of them)
================================================================================
================================
COCOMO II
Cost estimation: prediction of person-effort + elapsed time
================================================================================
================================
** Did you build the right architecture?
Make sure requirements are met.
Can you see that everything can be satisfied in the requirement?