0% found this document useful (0 votes)
100 views

Chapter 5 - Architecture in The Life Cycle

Uploaded by

eliasferhan2333
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
100 views

Chapter 5 - Architecture in The Life Cycle

Uploaded by

eliasferhan2333
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 26

Chapter Five

Architecture In The Life Cycle

1
Architecture in the agile projects

 Architecture is the blueprint that defines the structure,


relationships, and principles of a system within its environment.
 Grady Booch aptly stated, “All architecture is design but not all

design is architecture.”
 It embodies the significant design decisions that shape a system,

often defined by the difficulty of change.


 This leads to Martin Fowler’s insightful observation that

architecture is often defined by what is perceived as “hard to


change.”
2
Cont…

 Agile methodology, on the other hand, is a philosophy that values

flexibility and responsiveness.


 It empowers self-organizing teams, promoting incremental
development and frequent iterations.
 Agile recognizes that change is expectable and embraces it as a

natural part of the development process.


 The marriage of architecture and agility can be confusing.

 Agile emphasizes ease of change, while architecture typically

encapsulates elements that are hard to alter.


3
Cont…

 An effective software architect acts as a city planner, creating

a dynamic blueprint that allows for growth and change


without forgoing coherence.
 Software architecture spans various levels, from code-level

design to enterprise-wide structures.


 Each tier influences the system’s qualities, such as
performance, scalability, and security.

4
Agile’s Influence on Architecture

 Agile methodology promotes collaboration, iterative


development, and a focus on working software.
 Architectural decisions align with the Agile attitude by

favoring adaptability, responding to change, and promoting


transparency.
 Agile architects embrace “just-in-time” architecture, where

solutions evolve iteratively in response to the dynamic


nature of software development.

5
Role of the Architect in Agile
 In an Agile environment, the architect evolves from being a mere designer

to a technical leader who provides vision, guidance, and design principles.


 architects facilitate discussions, mentor developers, and ensure technical

alignment.
 The architect’s involvement in actual code writing contributes to a better

understanding of implementation challenges.


 Agile development methods have been designed to solve the problem of

delivering high quality software on time under constantly and rapidly


changing requirements and business environments.
 a software architect requires a wide range of both general and technical

skills.
6
Cont..
 The software architect must also possess the technical skills required to

understand how modern software systems, frames, and hardware support


the requirements; how network and operating system factors can affect
design decisions; and how trends and changes in these areas will have an
impact on design.
 After the initial requirements analysis, the software architect must also

apply his technical skills around design patterns, communication and


messaging standards, code capabilities, security issues and performance
constraints. All of these require in-depth knowledge of the technologies
that will be used to implement the final software.
 To do this modern architects need to master UML, especially if they plan to use
7
new technologies and especially those oriented to objects.
Principles of Agile

The methods introduced each require assembling relevant
 The goal of agile methods is to allow an organization to be agile, but what does it mean

to be Agile. Agile means being able to “Deliver quickly”; “Change quickly and often”
 Agile techniques vary in practices and emphasis, they follow the same principles behind

the agile manifesto


 Working software is delivered frequently (weeks rather than months).

 Working software is the principal measure of progress.

 Customer satisfaction by rapid, continuous delivery of useful software.

 Late changes in software requirements are accepted.

 Close daily cooperation between business people and software developers.

 Face-to-face conversation is the best form of communication.

 Projects are built around motivated individuals who should be trusted.

8  Continuous attention to technical excellence and good design.


Architecture and requirements
 The software architecture process takes clients’ requirements,

analyzes them and produces a design to obtain software that will


satisfy their needs.
 Software architecture means defining a structured solution that

meets all technical and operational requirements and, at the same


time, optimizing common attributes of quality such as
performance, security and manageability.

9
Designing and documentation
 The design phase of software development deals with
transforming the customer requirements as described in the SRS
documents into a form implementable using a programming
language.
 The software design process can be divided into the following

three levels of phases design:


 Interface Design
 Architectural Design
 Detailed Design

10
Cont…

 Software Design Document is a written document that provides

a description of a software product in terms of architecture of


software with various components with specified functionality.
 These design documents are written by software
engineers/designers or project managers and further passed to
the software development team to give them an overview of
what needs to be built and how.

11
S.No Software Design Document Module, Subpart
01 Reference Documents 1. Existing software documentation
2. System Documentation
3. Vendor(hardware or software) documents
4. Technical reference
02 Modules for each module 1. Processing narrative
2. Interface description
3. Design language(or other) description
4. Modules used
03 Scope 1. System objective
2. Hardware, software and human interfaces
3. Major software functions
4. Externally defined database
5. Major design constraints, limitations
04 Design Description 1. Data description
2. Derived program structure
3. Interface within structure
05 Test Provisions 1. Test guidelines
2. Integration strategy
3. Special considerations

12
S.No Software Design Document Module, Subpart
06 Packaging 1. Special program overlay provisions
2. Transfer consideration

07 File Structure and global 1. External Files structure


data 2. Global data
3. File and data cross – reference

08 Requirement cross-reference 1. cross-reference

13
Importance of Design Documentation:

1. Requirements are well understood: With proper documentation,


we can remove inconsistencies and conflicts about the
requirements. Requirements are well understood by every team
member.
2. Architecture/Design of product: Architecture/Design documents
give us a complete overview of how the product look like and
better insight to the customer/user about their product.
3. New Person can also work on the project: New person to the
project can very easily understand the project through
documentations and start working on it.
14
Cont…
4. Everything is well Stated: This documentation is helpful to understand each
and every working of the product. It explains each and every feature of the
product/software.
5. Proper Communication: Through documentation, we have good
communication with every member who is part of the project/software. Helpful
in understanding role and contribution of each and every member.
Implementation and testing
 Implementation is the process of:
 defining how the information system should be built (i.e., physical

system design),
 ensuring that the information system is operational and used,

 ensuring that the information system meets quality standard (i.e., quality

assurance).
 Testing process

 Program testing with test data


 Link testing with test data
 Full systems testing with test data

 Full systems testing with live data


Cont…
 Testing guidelines
 Test different aspects of the system, e.g., response time, response to

boundary data, response to no input, response to heavy volumes of input


 Test anything that could go wrong or be wrong about a system

 Test the most frequently used parts of the system at a minimum

 The people who create the test cases should not be the same people as

those who coded and tested the system


 Use debugging tools, e.g., symbolic debugger

17
Cont…

 7 types of tests

Test Description Characteristic


Inspection Manually examine code for errors Detect 60 to 90 percent
of defects
Walkthrough Manually review code to find errors Should be done when the
by examining what the code does pieces of work are small
Desk checking Manually work through the code, The reviewer acts as a
executing each instruction using test algorithm
cases
Syntax Uncover syntax errors by a compiler, The only automated
checking used to examine the format and the testing technique that is
gramma static
Unit/module Discover any error that may exist in a Each module is tested
testing module's code alone
Integration Discover any error that may exist by Top-down gradual
testing combining modules testing
System testing Discover any error that may exist by Top-down gradual
integrating programs into systems testing
18
Architecture reconstruction and conformance
 Architecture reconstruction:

 is an “as-built” architecture of an implemented of system i.e obtained from

the existing system


 It is done through the “detail analysis ” of the system, using tool support.

, If the tools are successful, the end result is an architectural representation.


 Although it is not an automatic process

 It is an “interpretive ”, “interactive” and “iterative” process involving many

activities.
 Requires the skills and attention of both the engineering expert and the

architect

19
Reconstruction Activities
• Software Architecture reconstruction comprise the following activities,

carried out iteratively:-


 Information Extraction

 Database Construction

 View Fusion

 Reconstruction

Figure: ArchitectureReconstruction Activities


20
Information Extraction
 The purpose of this activity is to extract information from various

Sources .

21
Database Construction
 Database construction involves converting information into a standard

form, such as Rigi(Receiving Inspection General Instruction) standard


form(tuple based data format) and SQL based database format.
 It is necessary to chose a database model

 For choosing model, consider the following

 It should be a well known model

 Sufficient queries are allowed

 Support remote access to database

 Supports view fusion by combining information from various tables

 It supports query language

22
View Fusion
 It combines information in the database to produce a coherent view of

architecture.
 It involves defining and manipulating extracted information to reconcile,

augment and establish connections between the elements.

23
Reconstruction
 The reconstruction activity is where the main work of building

abstraction and various representation of the data to generate an


architecture representation take place
 Reconstruction provides two basic activities

 Visualization and interaction

 Pattern recognition and definition


 Visualization and interaction: A mechanism by which the user may

interactively visualize, explore and manipulate views


 Pattern recognition and definition: provides facilities for architectural

reconstruction, the definition and recognition of the code manifestation of


24 architectural patterns.
Reading Assignment
 Economic analysis of Architecture

 Architecture competence

 Architecture and Software product lines

25
Reading Assignment

 Read about the advantage and dis advantage of using a

framework for producing applications


 Refactoring

 Reengineering

26

You might also like