STUDYMET
STUDYMET
• Characteristics of a project
- Made up of unique activities which do not repeat
- Goal specific
- Sequence of activities to deliver end-product
- Time bound
- Inter-related activities
1
• Planning, scheduling, monitoring, risk management, managing
quality and people performance
• A charter is created
- Purpose of the project
- Vision, objectives
- Deliverables
2
- Responsibilities of the project teams and stakeholders
- Planning
- Perspectives
3
Time expenditure and Risks Delivery plans Communication Mechanism
Interaction/Review plans
4
- Organize the project
• Partners
- For project build, install, localisation, documentation, product management,
product marketing, sales, pre-sales, support
- Downstream or Upstream
- Determine deliverables
5
- Work break down (WBS)
- Estimation is done for size and effort of WBS tasks (time, cost and so on)
- Common estimates:
- Estimation could be
• Empirical estimation: Formula derived from past projects (size, process char,
experience)
- Semi-detached: In between
• Estimation approaches
• Types of CoCoMo
• Activities
- Brings concerned individuals to participate in building schedule
7
- Identify schedule risks and mitigation plans
• Risk: unexpected event that might impact people, tech and resources
• Steps
- Identify risk (what may go wrong)
8
- Execute and monitor mitigation plan
• Communication plans
- Deliverables
- Process model
- Organisation
- Management activities
- Risks
- Staffing
- Quality Criteria/Assurance
- Work Packages
- Resources
- Delivery Means
• Quantitative data
• Checkpoints, milestones, toll-gates
• Building a team
• Reorganising structures
11
• Includes
- Monitoring and controlling project work: collect
measures and make
corrective/preventive actions
• Steps involved
- Handover deliverables to customer and obtain project/UAT (User
acceptance testing) sign-off from client
Software architecture
12
• • Need to learn the rules
- Algorithms, data structures, languages of software
- Software architecture
- Importance of architecture
• Quality driven
• Recurring styles
• Conceptual integrity
- Factors that influence Software Architecture
• Functional requirements
• Data profile
Audience
• Usage characteristics
• Business priority
• Regulatory/Legal obligations
• Architectural standards
• Cost constraints
• Initial state
• Architect and staff background
• Technical constraints
• Environment
• User Requirements
• Business Strategy
14
• • Software Design
• Software Quality
- Architect
15
• Styles: how the subsystems and elements are organised
- Way of organizing code; (Pipe & Filters, Client-Server, Peer-to-
Peer)
Representations of different aspects of the system’s Templates or perspectives for creating architectural
architecture. views.
To illustrate and analyze specific concerns of the To guide the creation and organization of views.
system.
Specific to individual aspects like performance or Broader, guiding overall view creation strategies.
design.
Used to document and communicate system design. Used to ensure comprehensive coverage of
concerns.
ex: Logical view, development view, physical view. ex: 4+1 View Model, C4 Model.
- Architectural conflicts
17
• Decomposition: problem -> individual modules/components -
Approaches:
• Based on layering
- Order system into layers; each layer consumers service from lower layer and
provides service to higher layers
- Ordering of abstractions
- Eg: TCP/IP model
• Based on exposure
- How is the component exposed and consumes other components
• Based on functionality
- Grouping with problem domain and separate based on functions
• Based on generality
• Based on Volatility
- Identify parts which may change and keep them together (UI)
• Based on Configuration
- Look at target for features needing to support different configurations
18
• Based on Coupling: keeping things together; Cohesion: things
that work together
- Low coupling and high cohesion (good software always obeys this)
• Other approaches
- Divide and conquer
hiding
- Architectural views
• 4 ways to view
- Structure of modules (Module view point)
• Architect enumerates what units of software will have to do and assigns each
item to a module
19
• Less emphasis on how software manifests at runtime
- Component-and connector structure (View point)
- As allocation structure
• Implementation structure
- How software is mapped onto file structures in systems development, integration
or config control envs
- Architectural styles
system
- Design rules: constraints that dictates how processing elements would be connected
• Solution
- System model: procedures and modules are defined in a hierarchy
- Implicit invocation
- Repository
- Layers of abstraction
- Client server
- Architectural pattern
• Single app layer that supports UI, business rules and manipulation of data
• Model
23
- Establish and collect information to be displayed
• View
• Controller
- Accepts input and converts it to commands for model/view
• Use cases
- UI logic tends to change more frequently than business logic
1. Introduction
1. Purpose
24
To describe the architecture of the Nico e-commerce system.
2. Scope
Covers system design, deployment, and performance considerations.
3. Definitions, Acronyms and Abbreviations
API - Application Programming Interface, DB - Database.
4. References
[1] Nico System Design Document, [2] E-Commerce Standards Guide.
2. Architectural Representation
The system is represented using the 4+1 View Model.
3. Architectural Goals and Constraints
Ensure scalability, security, and high availability within a budget constraint.
4. Use-Case View
5. Logical View
Divided into User Interface, Business Logic, and Data Access layers.
• Process View
- Processes
User management, inventory control, and transaction processing.
- Process to Design Elements
User management maps to the User Interface and Authentication modules.
- Process Model to Design
Data flow diagrams showing interactions between modules.
6. Model Dependencies
User Interface depends on the Business Logic layer.
8. Deployment View
25
• External Desktop PC Runs the client application.
• Desktop PC
Hosts the local web server for testing.
• Registration Server
Manages user registrations and authentication.
- Course Catalog
Provides the list of available products.
• Billing System
Handles payment processing and invoicing.
9. Performance
System designed to handle 10,000 concurrent users with a response time under 2
seconds.
10. Quality
Adheres to industry best practices for security, maintainability, and usability.
Software design
- Design principles
- Procedural/data abstraction
• Best to be self-contained
- Cohesion: extent to which components are dependent on each other
• Strong is good
• Could be
- Adhoc
- Sequential
• Loose is good
• Types
- Content: one component directly impacts another
• Information hiding
- Need to know; each module has a secret
- Done via
• Encapsulation: hides data and only allows access via specific functions
27
• Separation of interface and implementation: define a public
interface but separate details of how it is realised
- Enables independence
• Limiting complexity
- Effort required to build the solution (lines of code, depth of nesting)
• Hierarchical structure
- Issues to be handled
• Distribution of components
- Distributed apps are supported by middleware
- Ensure that Faults do not need lead to errors which lead to system failures
• Data persistance
- Storage of information between executions
- Differences between architecture and design
Architecture Design
• Module hierarchy
- Transform centered
29
- Data flow diagram
• External entity
- Source and destination of transaction
• Processes
- Transform the data; depicted as circle
• Data stores
- Lie between processes and places where data structures reside -
Two parallel lines
• Data flows
- Data travels between processes, entities, data stores
- Depicted as an arrow
• Procedural patterns
- Analyse problem prior to and during construction • Object oriented pattern:
Gang of Four solutions
- Singleton pattern
• Intent: only one instance of class is created; global access point to object
• been introduced
Example,
1. Spaghetti Code
Code with a tangled, unstructured control flow that is hard to follow and maintain.
Example: Using numerous goto statements leading to a confusing, non-linear flow of execution.
2. Golden Hammer
Applying a single tool or technology to all problems, regardless of its suitability.
Example: Using a relational database for every application, even when a NoSQL solution would
be more appropriate.
3. Boat Anchor
Retaining obsolete or unnecessary components that are no longer needed, but are kept due to
their historical significance.
Example: Continuing to use a legacy library for new development when it’s been superseded by
more efficient alternatives.
4. Dead Code
Code that is never executed or used, which adds unnecessary complexity and can lead to
confusion.
Example: A function in a codebase that is never called by any other part of the program.
Comparison
Abstraction Basic abstractions are real world Basic abstraction are not real world
functions, processes functions but data
and procedures representing real world entities
Lifecycles Uses SDLC methodology Incremental or Iterative methods
Begin basis Considering use case diagram Begins by identifying objects and
and scenarios classes
Decompose Function level decomposition Class level decomposition
Design approaches Use Data flow diagram, Class, component and deployment
structured English, ER diagram, for static design; Interaction and
Data dictionary, Decision State for dynamic
tree/table
Design techniques Design enabling techniques need Communicates with objects via
to be implemented message passing and has
design enabling techniques
33
Design
Implementatio Functions are described and Components have attributes and
n called; data isn’t encapsulated functions; class acts as blueprint
- Each service embodies code and data integrations to execute a complete, discrete
business function; provide loose coupling
- Exposed using standard network protocols (SOAP - Simple object access protocol/HTTP or
JSON/HTTP) to send requests to read or change data
- Benefits
• Service reusability
• Service Compensation
34
- Service
• Service abstraction
• Service Monitoring
• Service Orchestration
35
• Service broker/registry: responsible for providing information
about the service
• Service requester/consumer: finds a service in the broker and connects to the provider
- SoA vs Microservices
SoA Microservice
36