CEN5011 Software Engineering

Download Report

Transcript CEN5011 Software Engineering

CEN5011 Software Engineering
Dr. Yi Deng
ECS359, (305) 348-3748
[email protected]
CEN5011, Fall 1999
1
Bottom Lines of Software Project
COST, TIME, QUALITY
not necessarily in that order
CEN5011, Fall 1999
2
Unified Process
•
•
•
•
A software development process - A set of activities needed to
transform a user's requirements into a software system
– What constitutes a software system? The CODE?
Also a generic process framework that can be specialized to different
types of
– Application problems,
– Application areas,
– Organizations
– Project sizes
Uses UML
– Relationship between design language, method and process
UML an integral part of UP
CEN5011, Fall 1999
3
Unified Process - cont’d
•
Is Use-Case driven
– Use-Case - a piece of functionality in the system that is visible (or
usable) to a user (not necessarily human user)
– All use-cases made up the Use-Case Model, which replaces
traditional functional specification.
– Use-case model represents functional specification of the system
FOR EACH USER - has important implications
– Not only for requirement specification, but also drives design,
implementation, testing, i.e. development process
CEN5011, Fall 1999
4
Unified Process - cont’d
•
Is Architecture-Centric
– What is architecture?
– A view of the whole design with the important characteristics made
more visible by leaving details aside
– Every product has both FUNCTION and FORM; these two cases
must be balanced for a success product
– Use-case corresponds to function, architecture to form
• Relationship and interplay of use-case and architecture
CEN5011, Fall 1999
5
Unified Process - cont’d
•
Is Iterative and Incremental
– Issues of complexity and evolution
– Issue of Risks
– Issues of changing requirements, platforms, and technology
– Controlled (planned) iteration vs. random iteration
CEN5011, Fall 1999
6
•Lifecycle of Unified Process

Is a cycle with four phases and their iterations (Fig. 1.3)
 Inception - seed idea of development is being matured and to
warrant entering the elaboration phase. Use-case model defined
 Elaboration - architecture is defined
 Construction
 Transition - software is turned into the hands of the user community
CEN5011, Fall 1999
7
Four Phases of Unified Process
CEN5011, Fall 1999
8
Lifecycle of Unified Process - cont’d


Each cycle results in a new release - a new product
What's in a product
 Requirements, use cases, non-functional requirements, test cases,
executable code, etc.
 A product needs to meet the needs of all important stakeholders,
who needs different elements of a product (Fig. 1.4)
 Traceability between different models
CEN5011, Fall 1999
9
Products of Stakeholders
CEN5011, Fall 1999
10
Lifecycle of Unified Process - cont’d
 Phases within a cycle
 Phase terminates by a milestone, the availability of a set of
artifacts
 Purpose of milestone - evaluation of process and make critical
decisions before work can proceed to the next phase.
 Concept of software baseline
 Typical iterations of workflow in a cycle (Fig 1.5)
CEN5011, Fall 1999
11
Process Workflow
CEN5011, Fall 1999
12
Key Elements of Software Development
•
•
•
•
•
People - stakeholders
Project - specialization of process
Process - set of organized developed activities, template for project
Product - outcome of project
Tools - process automation
CEN5011, Fall 1999
13
Key Elements of Development
CEN5011, Fall 1999
14
People
•
Factors that affect the effectiveness of people
– Development process affect people
– Project feasibility
– Risk management
– Team structure
– Project schedule
– Project understandability
– Sense of accomplishment
CEN5011, Fall 1999
15
Projects Make the Product
•
•
•
A project “is” a sequence of changes
A project “is” a series of iterations
A project follows an organization pattern
– for people
– for planning
– for management
CEN5011, Fall 1999
16
Product Is More Than Code
•
•
•
•
What is a software system? (fig. 2.3)
– Code
– Requirements, tests, sales, production, installation, operation, …
– Different stakeholders sees different parts of the system
A system has a collection of MODELS
What is a model?
– An abstraction of a system
– A self-contained view of the system
– The system is in the eye of beholders (or stakeholders)
System development is a process of modeling building
– Key: what models to build and what relationship holds between
models
CEN5011, Fall 1999
17
Multiple Facets of System
CEN5011, Fall 1999
18
Process Directs Projects
•
•
Software development process
– Complete set of activities needed to transform users’ requirements
into a consistent set of artifacts that represents a software product
and, later, to transform changes in those requirements into a new,
consistent set of artifacts
A process is a template
– In other works, a process is a definition of activities, not their
execution
– Process needs to be instantiated or specialized for individual
projects
– Should cover entire software lifecycle
CEN5011, Fall 1999
19
Specializing Process
•
•
•
No universally applicable process
Why?
– Organizational factors: structure, culture, project organization &
management, competence & skill levels, prior experience, etc.
– Domain factors: application domain, e.g. mission critical v.s. word
processor, real-time v.s. batch processing, user community, market
competition, etc.
– Lifecycle factors: time to market, expected life span, planned future
releases, etc.
– Technological factors: programming languages, development tools,
databases, middleware, communication & distribution, etc.
Bottom line: general process needs to be specialized
CEN5011, Fall 1999
20
Why Process?
•
Bottom line: software development is a complex, risky, expensive and
people-intensive venture
•
Mutual understanding of roles, responsibilities, dependence,
communication and coordination among developers and customers
Orderly development
Improved quality and predictivity of software
Standardized training
Repeat-ability of successful projects and continuous organizational
improvement
Improved productivity?
•
•
•
•
•
CEN5011, Fall 1999
21
Tools
•
•
•
•
Essential to modern, complex development
Tools impact process
– Formalized development process involves large amount of
information and coordination
– Automation is essential
– e.g. software configuration management tools
Process drive tools
– Process specifies the tool functionality
– Judging feasibility of tools in terms of their support to particular
process
Balance process and tools
– Process drives tool development, tool guides process
CEN5011, Fall 1999
22