CEN5011 Software Engineering - PowerPoint PPT Presentation

About This Presentation
Title:

CEN5011 Software Engineering

Description:

A software development process - A set of activities needed to transform a ... but also drives design, implementation, testing, i.e. development process ... – PowerPoint PPT presentation

Number of Views:9
Avg rating:3.0/5.0
Slides: 23
Provided by: dryi
Learn more at: https://cadse.cs.fiu.edu
Category:

less

Transcript and Presenter's Notes

Title: CEN5011 Software Engineering


1
CEN5011 Software Engineering
  • Dr. Yi Deng
  • ECS359, (305) 348-3748
  • deng_at_cs.fiu.edu

2
Bottom Lines of Software Project
  • COST, TIME, QUALITY
  • not necessarily in that order

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

4
Unified Process - contd
  • 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
Unified Process - contd
  • 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
Unified Process - contd
  • 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
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
Four Phases of Unified Process
9
Lifecycle of Unified Process - contd
  • 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
Products of Stakeholders
11
Lifecycle of Unified Process - contd
  • 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
Process Workflow
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

14
Key Elements of Development
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

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

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

18
Multiple Facets of System
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

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

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?

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
Write a Comment
User Comments (0)
About PowerShow.com