Software Engineering with Reusable Components - PowerPoint PPT Presentation

About This Presentation
Title:

Software Engineering with Reusable Components

Description:

Cost-effective production of high-quality system is the primary goal of software ... and necessitate returning and partly or even completely redoing earlier work. ... – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 37
Provided by: cinU
Category:

less

Transcript and Presenter's Notes

Title: Software Engineering with Reusable Components


1
Software Engineeringwith Reusable Components
  • RiSEs Seminars
  • Sametingers book Chapters 11, 12 and 13
  • Ednaldo Dilorenzo

2
Summary
  • Software Engineering (Chapter 11)
  • Introduction
  • Software Management
  • Software Design
  • Software Implementation
  • Software Testing
  • Software Maintenance
  • Software Process Models (Chapter 12)
  • Waterfall Model
  • Exploratory Model
  • Prototyping Model
  • Spiral Model
  • Twin Life Cycle

3
Summary
  • Domain Engineering
  • Domain Analyses
  • Domain Analyses Activities
  • Domain Analyses Methods
  • Foda Feature-Oritented Domain Analyses
  • Domain Implementation

4
Software Engineering
4
5
Introduction
Software Engineering Chapter 11
  • Cost-effective production of high-quality system
    is the primary goal of software engineering
  • Software reuse and components provide crucial
    contributions in this direction
  • Large software projects are broken up into
    various project phases

6
Software Management
Software Engineering Chapter 11
  • Software projects tend to run over budget and
    behind schedule
  • Software management has to plan a project
  • It comprises the following major activities
  • Project planning
  • Project measuring
  • Project estimating
  • Project scheduling
  • Project controlling

7
Software Specification
Software Engineering Chapter 11
  • Software specifications serve as contracts
    between customers and manufacturers of software
    systems.
  • For complex systems, requirements analyses may be
    necessary.
  • A software specification should be complete.
  • Functional and nonfunctional requirements are
    among the most important parts of a
    specification.
  • Specifications should completely and consistently
    define requirements on components.

8
Software Design
Software Engineering Chapter 11
  • Software Design is an iterative process and
    involves describing a component at different
    levels of abstraction.
  • Design includes various activities
  • Architectural design
  • Component or interface design
  • Data structure design
  • Algorithmic design

9
Software Design
Software Engineering Chapter 11
  • Top-down design is typical for components being
    built from scratch.
  • Botton-up design proceeds in the oposite
    direction.
  • Good designs are considered to have the following
    characteristics
  • Modularity
  • Coupling
  • Cohesion
  • Understandability, Adaptability

10
Software Design
Software Engineering Chapter 11
  • All these characteristics are related to each
    other.
  • Various categories of design methods exist.
  • Design methods and software reuse interact in two
    ways.

11
Software Implementation
Software Engineering Chapter 11
  • Implementation is the process of transforming a
    design into an executable.
  • Ideally, the design of a component is independent
    of its implementation.
  • We refrain from dealing with implementation in
    greater detail.

12
Software Testing
Software Engineering Chapter 11
  • The purpose of testing is to ascertain whether a
    component satisfies its requirements by
    discovering as many errors as possible.
  • Various kinds of tests include the following
  • Specification test
  • Component test
  • Integration test
  • Acceptance test

13
Software Testing
Software Engineering Chapter 11
  • Various testing methods and strategies include
  • Static/dynamic testing
  • Black-box/white-box testing
  • Top-down/botton-up testing
  • With software reuse, software quality can be
    increased and testing efforts can be decreased.

14
Software Maintenance
Software Engineering Chapter 11
  • Software maintenance is the modification of a
    software component after its first delivery.
  • Maintenance activities fall into the following
    categories
  • Adaptive maintenance
  • Corrective maintenance
  • Perfective maintenance
  • Preventive maintenance

15
Software Maintenance
Software Engineering Chapter 11
  • The cost of maintenance has been steadily
    increasing over the past decades.
  • Reuse can have a positive influence on
    maintenance costs when high-quality components
    are available and reused for the development of
    software systems.

16
Waterfall Model
Software Process Models Chapter 12
  • According to the waterfall model, the software
    development process is divided in well-defined
    phases.
  • The waterfall life cycle comprises the following
    steps
  • Requirements analysis
  • Specification
  • Design
  • Implementation
  • Test
  • Operation and Maintenance

17
Waterfall Model
Software Process Models Chapter 12
  • Any step might uncover problems in a previous
    step and necessitate returning and partly or even
    completely redoing earlier work.
  • The waterfall model enforces a linear process,
    which implies that executable programs are
    available late in the process.
  • Despite its drawbacks, the classic software life
    cycle continues to provide structure for many
    software projects.

18
Exploratory Model
Software Process Models Chapter 12
  • The classic software life cycle is not practical
    for many of todays software systems.
  • In the exploratory model a working system is
    developed as quickly as possible.
  • Large, longevous software systems are usually not
    developed by using exploratory programming.
  • Exploratory software development involves
    repeatedly applying techniques.

19
Exploratory Model
Software Process Models Chapter 12
  • Good when both customers and developers dont
    know what they want.
  • The exploratory model delivers various
    operational but incomplete products.
  • Exploratory development challenge software
    engineers in that they create an open
    architecture.

20
Prototyping Model
Software Process Models Chapter 12
  • Rapid prototyping has become popular for the
    development of software systems with complex user
    interfaces.
  • The purpose of the prototype is to enable
    customer and developer to agree on what the
    software system is supposed to do.
  • Prototypes are useful for software components as
    well, especially those with complex user
    interfaces.

21
Spiral Model
Software Process Models Chapter 12
  • The key characteristics of this model are regular
    assessments of management risks and actions to
    counteract these risks.
  • Each cycle of spiral have the following steps
  • Specifying objectives
  • List alternatives and their constraints
  • Assessing each of the alternatives against each
    objective
  • The spiral model incorporates other process
    models.

22
Twin Life Cycle
Software Process Models Chapter 12
  • Different organizational groups are involved in
    systematic reuse
  • Domain groups
  • Component groups
  • Application groups
  • Software process models and software reuse
    interact in two ways
  • Design with reuse
  • Design for reuse
  • Provides only a rough overview, but it clearly
    demonstrates activities of groups.

23
Domain Analyses
Domain Engineering Chapter 13
  • Common objects and operations are likely to occur
    in multiple applications within a domain.
  • Domain analyses stresses the reusability of
    analyses and design, not code.
  • Domain-specific reuse is usually accomplished by
    separating domain engineering and application
    engineering.

24
Domain Analyses
Domain Engineering Chapter 13
  • Information Sources
  • Existing applications
  • Domain experts
  • Products
  • Domain definition
  • Domain model
  • Domain requirements model
  • Architecture model
  • Domain taxonomy
  • Domain language
  • Domain standards
  • Reusable components

25
Domain Analyses
Domain Engineering Chapter 13
  • In the context of domain analysis we can
    distinguish the following categories
  • General purpose
  • Domain-specific components
  • Product-specific components
  • Benefits
  • Reuse of domain knowledge
  • Reuse of components in a certain context
  • Domain-specific model for classification
  • Framework for tooling and systems synthesis from
    reusable components
  • Large-grain reuse across products
  • Identification of reusable software components

26
Domain Analysis Activities
Domain Engineering Chapter 13
  • Activities in domain analysis have been described
    by various authors.
  • Arango has compared several domain analysis
    methods and extracted a common process with the
    following activities
  • Domain Definition and Preparation
  • Data Collection
  • Data Analysis and Classification
  • Evaluation

27
Domain Definition and Preparation
Domain Engineering Chapter 13
  • It is important that a domain be clearly defined
    and its boundaries be established
  • After the definition of the domain, relevant data
    has to be identified and collected for the
    acquisition of domain knowledge

28
Data Collection
Domain Engineering Chapter 13
  • Different approaches for data collection can be
    used, e.g., reviews of literature, interviews of
    experts, analysis of applications.
  • In determining reusable components various levels
    can be chosen for analysis
  • Different sources of information provide
    different types of information

29
Data Analysis and Classification
Domain Engineering Chapter 13
  • It is crucial to analyze similarities, variations
    and combinations of data.
  • The activities in this step are not entirely
    different from activities in developing a single
    software system.
  • Domain information is prepared by abstracting and
    generalizing functions, objects and their
    relationships.

30
Evaluation
Domain Engineering Chapter 13
  • Besides using and refining models, it helpful to
    evaluate the domain
  • Real application developments are the best
    evaluation and test of a domain

31
Domain Analysis Methods
Domain Engineering Chapter 13
  • Domain analysis methods provide some sort of
    systematic proceeding to do domain analyses
  • Argo has presented, compared and evaluated eight
    domain analysis methods
  • They are essentially similar, with the main
    differences in
  • Emphasis on certain data acquisition means over
    others
  • Approach to modeling, e.g., functional vs.
    object-oriented techniques
  • Overlapping subsets of notations
  • Different groupings of activities with different
    names
  • Same names with slightly different meanings

32
Foda Feature-Oriented Domain Analysis
Domain Engineering Chapter 13
  • It was developed at the Software Engineering
    Institute
  • Foda contains the basic phases
  • Context Analysis
  • Domain Modeling
  • Architecture Modeling

33
Context Analysis
Domain Engineering Chapter 13
  • Define the scope of the domain and its
    relationships to other domain
  • Context model
  • Structure diagrams
  • Data flow diagrams

34
Domain Modeling
Domain Engineering Chapter 13
  • Analyze commonalties and differences of problems
    being addressed by applications in the domain
  • Feature analysis
  • Entity relationship modeling
  • Functional analysis

35
Architecture Modeling
Domain Engineering Chapter 13
  • Provide a software solution to problems defined
    during domain modeling.
  • The Foda architecture model is a high-level
    design of applications in the domain.

36
Domain Implementation
Domain Engineering Chapter 13
  • Domain implementation means the use of the
    information collected in domain analysis to
    create reusable components and new systems.
Write a Comment
User Comments (0)
About PowerShow.com