Uploaded by Yara Khairat

software engineering bullet points

class diagram ‫ اعمله ال‬market ‫ازاي السؤال العملي هيجي؟ هتقولك مثال عندك‬
‫امتحان الميدترم مهم موجود في اخر ورقة‬
Software Reuse
systems designed by composing existing components that have
been used in other systems
Benefits of sw reuse
Increased dependability
Lower development costs
Reduced process risk
Problems with SW reuse
Creating, maintaining, and using a component library
Increased maintenance costs
Lack of tool support
Approaches that support SW reuse ‫ مثال‬4 ‫احفظ‬
Application frameworks
Application system integration
Architectural patterns
Aspect-oriented software development
Component-based sw eng
Configurable application systems
Design patterns
ERP systems
Legacy system wrapping
Model-driven engineering
Reuse planning factors
The development schedule for the SW.
The expected SW lifetime.
The background, skills and experience of the development team.
The criticality of the SW & its non-functional requirements.
The app domain.
The execution platform for the SW.
Application frameworks
an integrated set of software artifacts (such as classes, objects and
components) that collaborate to provide a reusable architecture.
Web Apps Framework (WAF) Features
Dynamic web pages
DB support
Session management
User interaction
Extending frameworks
they provide a skeleton architecture for the system
Inversion of control in frameworks:
Framework classes
• System infrastructure frameworks
• Middleware integration frameworks
• Enterprise application frameworks
Software product lines
set of apps with a common architecture & shared components & generic
functionality, with each app specialized to reflect different requirements.
Adaptation may involve
Component and system configuration
Adding new components
Modifying components to meet new requirements.
Base systems for a software product line: ‫اعرف الرسمه‬
Product line architectures
Vehicle dispatching ‫زي ما اتفقنا متحفظش التعريفات‬
A specialized resource management system where the aim is to
allocate resources to handle incidents
Product line specialization
- Platform specialization
-Functional specialization
Product instance development: ‫مهم‬
-Environment specialization
- Process specialization
Product line configuration
1-Design time configuration ()
2 -Deployment-time configuration:
Levels of deployment time configuration :
Component selection
Parameter definition
Application system reuse
a SW system that can be adapted for different customers without
changing the source code of the system.
More rapid deployment of a reliable system.
Possible to see what functionality is provided by the apps.
risks are avoided by using existing SW.
Choosing the right COTS system for an enterprise can be a
difficult process
Lack of local expertise
The COTS product vendor controls system support and evolution.
Configurable app system
-Single product that provides the
functionality required by a customer
- Development focus is on system
-system vendor is responsible for
Application system integration
-Several heterogeneous system
products are integrated to provide
customized function
- is on system integration
-system owner
ERP systems
An Enterprise Resource Planning (ERP) system is a generic system
that supports common business processes
The architecture of an ERP system
Component-based software engineering(CBSE)
An approach to SW development that relies on the reuse entities
called(SW components)
-it stand-alone ‫يعني تحطها في أي حته تشتغل‬
CBSE Essentials
Independent components ‫مش هتأثر علي حاجه‬
Component standards ‫تشتغل علي أي برنامج وفي أي حته‬
A development process
Design principles for CBSE ‫بص مش شرط تحفظ كل ده اعرف اتنين مثال وحطهم في السؤال لو جالك‬
Components are independent
Component implementations are hidden
Communication is through well-defined interfaces
Component infrastructures offer a range of standard services
Component definitions
1.Councill and hanuman :: ‫يعني لمنظمه معينه او بني ادم معين‬
A software component is a software element that conforms to a
component model and can be independently deployed and
composed without modification according to a composition standard.
2.Szyperski: ‫عموميه‬
A software component is a unit of composition with contractually
specified interfaces and explicit context dependencies only. A
software component can be deployed independently and is subject to
composition by third-parties.
Component characteristics
###Component interfaces
A model of a data collector component
Component models
A component model is a definition of standards for component
implementation, documentation and deployment. ex(EJB model
(Enterprise Java Beans))
Specifies how interfaces should defined
### Basic elements of a component model ‫مهم‬
use services provided by a model , components are deployed In a container
Container is a set of interfaces used to access the service implementations)
### Middleware services defined in a component model ‫مهمه‬
CBSE processes
are SW processes that support component-based SWE
Development for reuse
(Developing components or services that will be reused in other
Development with reuse
(Developing new app using existing components and serices)
CBSE processes ‫مهم‬#########
### CBSE with reuse
The component identification process
Component identification issues
-Requirements -Validation
Component composition
The process of assembling components to create a system ,involves
integration components with each other
Types of compositions
1.Sequential composition
Components with incompatible interfaces
An adaptor linking a data collector and a sensor
Photo library compositon
Data collection and report generation components
Distributed systems:
Virtually all large computer-based systems are now distributed
Distributed system characteristics
-Resource sharing
-Fault tolerance
Distributed systems issues
-more complex than systems that run on a single processor
-Complexity because different parts of the system are managed as
is network.
-There is no single authority in charge of the system so top-down
control is impossible.
Types of attack
quality of service (QoS)
ability to deliver its services dependably and with a response time and
throughput that is acceptable to its users.
Important design issues that to be considered in distributed
–Quality of service (QoS)
–Failure management
Two types of interaction between components in a distributed system:
—Procedural interaction
—Message-based interaction
### Procedural interaction between a diner and a waiter
### middleware in a distributed system
Middleware support
—Interaction support
–provision of common services
Layers in a client/server system
–Application processing layer
–Data handling
5 Architectural patterns/styles of a distributed system:
Master-slave architecture
Two-tier client-server architecture
Multi-tier client-server architecture
Distributed component architecture
Peer-to-peer architecture
Two-tier client server architectures:
–Thin-client model
–Fat-client model
Use of client–server architectural patterns:
● Two-tier client–server architecture with thin clients
- Legacy system applications
- Computationally intensive applications
- Data-intensive applications (browsing and querying)
● Two-tier client-server architecture with fat clients
- Applications where application processing
- Applications where computationally intensive processing
- Mobile applications where internet connectivity
● Multi-tier client–server architecture
- Large-scale applications with hundreds or thousands
- Applications where both the data and the application
are volatile.
- Applications where data from multiple sources are integrated.
Disadvantages/challenges of distributed component architecture:
more complex to design than client–server systems.
Standardized middleware for distributed component system has
never been accepted by community.
Peer-to-peer (p2p) architectures:
decentralized systems
overall system is designed to take advantage
Most p2p systems have been personal systems
Peer-to-peer systems:
File sharing systems based on the BitTorrent protocol
Messaging systems such - Jabber
Payments systems – Bitcoin
– Freenet is a decentralized database
Phone systems
– Viber
Computation systems - SETI@home
P2p architectural models
The logical network architecture
- Decentralized architectures
- Semi-centralized architectures
Application architecture
Software as a service (SaaS):
hosting the software remotely and providing access to Internet.
Three Key elements of SaaS:
-Software is deployed on a server (accessed through a web
-The software is owned and managed by a software provider
-Users may pay for the software
Implementation factors for SaaS:
Service configuration
Business rules and workflows
Database extensions
Access c
@@@@ mid term @@@