cen5011, fall 19991 cen5011 software engineering dr. yi deng ecs359, (305) 348-3748 [email protected]

22
CEN5011, Fall 1999 1 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 [email protected]

Upload: gavin-campbell

Post on 04-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 1

CEN5011 Software Engineering

Dr. Yi Deng

ECS359, (305) 348-3748

[email protected]

Page 2: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 2

Bottom Lines of Software Project

COST, TIME, QUALITYnot necessarily in that order

Page 3: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 3

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

Page 4: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 4

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

Page 5: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 5

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

Page 6: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 6

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

Page 7: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 7

•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

Page 8: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 8

Four Phases of Unified Process

Page 9: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 9

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

Page 10: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 10

Products of Stakeholders

Page 11: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 11

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)

Page 12: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 12

Process Workflow

Page 13: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 13

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

Page 14: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 14

Key Elements of Development

Page 15: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 15

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

Page 16: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 16

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

Page 17: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 17

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

Page 18: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 18

Multiple Facets of System

Page 19: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 19

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

Page 20: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 20

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

Page 21: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 21

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?

Page 22: CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748 deng@cs.fiu.edu

CEN5011, Fall 1999 22

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