Presentation is loading. Please wait.

Presentation is loading. Please wait.

CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748

Similar presentations


Presentation on theme: "CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748"— Presentation transcript:

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

2 CEN5011, Fall 19992 Bottom Lines of Software Project COST, TIME, QUALITY not necessarily in that order

3 CEN5011, Fall 19993 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

4 CEN5011, Fall 19994 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

5 CEN5011, Fall 19995 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

6 CEN5011, Fall 19996 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

7 CEN5011, Fall 19997 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

8 CEN5011, Fall 19998 Four Phases of Unified Process

9 CEN5011, Fall 19999 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

10 CEN5011, Fall 199910 Products of Stakeholders

11 CEN5011, Fall 199911 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)

12 CEN5011, Fall 199912 Process Workflow

13 CEN5011, Fall 199913 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

14 CEN5011, Fall 199914 Key Elements of Development

15 CEN5011, Fall 199915 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

16 CEN5011, Fall 199916 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

17 CEN5011, Fall 199917 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

18 CEN5011, Fall 199918 Multiple Facets of System

19 CEN5011, Fall 199919 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

20 CEN5011, Fall 199920 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

21 CEN5011, Fall 199921 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?

22 CEN5011, Fall 199922 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


Download ppt "CEN5011, Fall 19991 CEN5011 Software Engineering Dr. Yi Deng ECS359, (305) 348-3748"

Similar presentations


Ads by Google