9-jun-15software architecture and design1 architecture style 3: abstract data types( object...
TRANSCRIPT
Apr 18, 2023Software Architecture and
Design 1
Architecture Style 3: Abstract Data Types( Object Oriented)
Examples:abstract data typesobject broker systems (e.g. CORBA)
Interesting properties data hiding (internal data representations are not visible to clients) can decompose problems into sets of interacting agents
Disadvantagesobjects must know the identity of objects they wish to interact with
Apr 18, 2023Software Architecture and
Design 2
Architecture Style 4: Event Based(Implicit Invocation)
Examplesdebugging systems (listen for particular breakpoints)database management systems (for data integrity checking)graphical user interfaces
Interesting propertiesannouncers of events don’t need to know who will handle the eventSupports re-use, and evolution of systems (add new agents easily)
DisadvantagesComponents have no control over ordering of computations
Apr 18, 2023Software Architecture and
Design 3
Explicit Invocationclass Client {
ServiceProvider sp; public void f() { ... sp.someService(); ... }}
class ServiceProvider { public void someService() { ... }}
4
Implicit Invocationpublic interface
ClientInterface { public void eventHandler();}
class Client implements ClientInterface { ServiceProvider sp; Client() { sp.registerListener(this); } public void eventHandler() { ... }}
class ServiceProvider { ClientInterface client; public void registerListener(ClientInterface c) { client = c; } // This routine runs sometime later after // the client has registered to listen // for events. public void f() { ... // notify listener client.eventHandler(); }}
Apr 18, 2023Software Architecture and
Design 5
Architecture Style 5: Layered Systems
Examples Operating Systems Communication protocols
Interesting properties Support increasing levels of abstraction during design Support enhancement (add functionality) and re-use Can define standard layer interfaces
DisadvantagesMay not be able to identify (clean) layers
Apr 18, 2023Software Architecture and
Design 6
Architecture Style 6: Repositories(Black Board Architecture)
Examples databases blackboard expert systems programming environments
Interesting properties can choose where the locus of control is (agents, blackboard, both) reduce the need to duplicate complex data
Disadvantagesblackboard becomes a bottleneck
Apr 18, 2023Software Architecture and
Design 7
Architecture Style 7: Process Control
Examples aircraft/spacecraft flight control systems controllers for industrial production lines, power stations, etc. chemical engineering
Interesting properties separates control policy from the controlled process handles real-time, reactive computations
Disadvantages Difficult to specify the timing characteristics and response to
disturbances
Apr 18, 2023Software Architecture and
Design 8
Process Control
Apr 18, 2023Software Architecture and
Design 9
Architecture Style 8: Model-View-Controller
Properties One central model, many views (viewers) Each view has an associated controller The controller handles updates from the user of the view Changes to the model are propagated to all the views Very popular, used extensively in Java and other languages.
Apr 18, 2023Software Architecture and
Design 10
Architecture Style 8: Client-Server
Client-server is a distributed system architecture style. A client process on one side receives services from a
server process on the other side. Usually the server doesn't know the identity of the clients
in advance. A protocol is defined for communication between client
and server (for example, HTTP, FTP, and WAP are all common Internet protocols).
Clients may locate servers indirectly through some type of registry. WWW clients find server locations through DNS.
Apr 18, 2023Software Architecture and
Design 11
Architecture Style 9: 3-Tiered and N-Tiered Architecture
Very common among web applications is the three-tiered architecture design: User Interface <--> Business Logic <--> Database.
Most data-driven systems that have a user interface follow this architecture model.
The coupling between layers can be reduced by limiting communication to some subset of the classes within a layer. The subset defines the interface onto the layer.
Apr 18, 2023Software Architecture and
Design 12
Software Project Management 13
Project management
Apr 18, 2023
14
IT projects have a terrible track record. A 1995 Standish Group study (CHAOS) found that
only 16.2 percent of IT projects were successful in meeting scope, time, and cost goals.
Over 31 percent of IT projects were canceled before completion, costing over $81 billion in the U.S. alone.*
*The Standish Group, “The CHAOS Report” (www.standishgroup.com) (1995). Another reference is Johnson, Jim, “CHAOS: The Dollar Drain of IT Project Failures,” Application Development Trends (January 1995).
Motivation for Studying Project Management
Apr 18, 2023 Software Project Management
15
Advantages of Using Formal Project Management
Better control of financial, physical, and human resources.
Improved customer relations. Shorter development times. Lower costs. Higher quality and increased reliability. Higher profit margins. Improved productivity. Better internal coordination. Higher worker morale (less stress).
Apr 18, 2023 Software Project Management
16
Project Management Skills
Leadership Communications Problem Solving Negotiating Influencing the Organization Mentoring Process and technical expertise
17
PM History in a Nutshell Birth of modern PM: Manhattan Project
(the bomb) 1970’s: military, defense, construction
industry were using PM software 1990’s: large shift to PM-based models
1985: TQM 1990-93: Re-engineering, self-directed teams 1996-99: Risk mgmt, project offices 2000: M&A, global projects
Apr 18, 2023 Software Project Management
Software Project Management 18
Project Management What’s a project? PMI definition
A project is a temporary endeavor undertaken to create a unique product or service
Progressively elaborated With repetitive elements
A project manager Analogy: conductor, coach, captain
Apr 18, 2023
Software Project Management 19
Interactions / Stakeholders
As a PM, who do you interact with? Project Stakeholders
Project sponsor Executives Team Customers Contractors Functional managers
Apr 18, 2023
Software Project Management 20
PM Tools: Software Low-end
Basic features, tasks management, charting MS Excel, Milestones Simplicity
Mid-market Handle larger projects, multiple projects,
analysis tools MS Project (approx. 50% of market)
High-end Very large projects, specialized needs, enterprise AMS Realtime Primavera Project Manager
Apr 18, 2023
Software Project Management 21
Tools: Gantt Chart
Apr 18, 2023
Software Project Management 22
Tools: Network Diagram
Apr 18, 2023
Software Project Management 23
PMI’s 9 Knowledge Areas Project integration management Scope Time Cost Quality Human resource Communications Risk ProcurementApr 18, 2023
Software Project Management 24
First Principles
One size does not fit all Patterns and Anti-Patterns Spectrums
Project types Sizes Formality and rigor
Apr 18, 2023
Software Project Management 25
Why Rapid Development
Faster delivery Reduced risk Increased visibility to customer Don’t forsake quality
Apr 18, 2023
Software Project Management 26
Strategy
Classic Mistake Avoidance Development Fundamentals Risk Management Schedule-Oriented Practices
Apr 18, 2023
Software Project Management 27
Four Project Dimensions
People Process Product Technology
Apr 18, 2023
Software Project Management 28
Trade-off Triangle
Fast, cheap, good. Choose two.
Apr 18, 2023
Software Project Management 29
Trade-off Triangle Know which of these are fixed & variable for every
project
Apr 18, 2023
Software Project Management 30
People
“It’s always a people problem” Gerald Weinberg, “The Secrets of Consulting”
Developer productivity: 10-to-1 range
- Improvements:- Team selection- Team organization Motivation
Apr 18, 2023
People… …the most important factor in success
of software project. “Companies That sensibly manage their
investment in people will prosper in the long run” .
Cultivation of motivated and highly skilled software people has always been important for software organizations.
The “people-factor” is so important that has developed People Management Capability Maturity Model (PM-CMM).
PM-CMM In simple words - to enhance the
people’s capabilities through personnel development
Organizations that achieve high levels of maturity in PM-CMM have a higher likelihood of implementing effective software engineering practices
PM-CMM (Contd.) Key Practice Areas of PM-CMM
Recruiting Selection Performance Management Training Compensation Career development Organization and work design Team/culture development
Software Project Management 34
People 2
Other success factors Matching people to tasks Career development Balance: individual and team Clear communication
Apr 18, 2023
Software Project Management 35
Process
Is process stifling? 2 Types: Management & Technical Development fundamentals Quality assurance Risk management Lifecycle planning Avoid abuse by neglect
Apr 18, 2023
Software Project Management 36
Process 2
Customer orientation Process maturity improvement Rework avoidance
Apr 18, 2023
Software Project Management 37
Product
The “tangible” dimension Product size management Product characteristics and
requirements Feature creep management
Apr 18, 2023
Software Project Management 38
Technology
Often the least important dimension
Language and tool selection Value and cost of reuse
Apr 18, 2023
Software Project Management 39
Planning
Determine requirements Determine resources Select lifecycle model Determine product features
strategy
Apr 18, 2023
Software Project Management 40
Tracking
Cost, effort, schedule Planned vs. Actual How to handle when things go off
plan?
Apr 18, 2023
Software Project Management 41
Measurements To date and projected
Cost Schedule Effort Product features
Alternatives Earned value analysis Defect rates Productivity (ex: SLOC) Complexity (ex: function points)
Apr 18, 2023
Software Project Management 42
Technical Fundamentals
Requirements Analysis Design Construction Quality Assurance Deployment
Apr 18, 2023
Software Project Management 43
Project Phases
All projects are divided into phases All phases together are known as
the Project Life Cycle Each phase is marked by
completion of Deliverables Identify the primary software
project phases
Apr 18, 2023
Software Project Management 44
Software Projects Projects deficiencies: Software
is delivered late, is unreliable, costs several times the original estimates, exhibits poor performance, does not meet its requirements.
Note: These are technology issues, but caused by management!
Apr 18, 2023
Software Project Management 45
Introduction
Many software projects fail: due to faulty project management
practices: It is important to learn different aspects
of software project management.
Management techniques derived from small-scale projects do not scale up to large systems development.
Apr 18, 2023
Software Project Management 46
Introduction
Goal of software project management: enable a group of engineers to work efficiently towards successful completion of a software project.
Apr 18, 2023
Software Project Management 47
Concerned with activities involved in ensuring that software is delivered on time and on schedule and in accordance with the requirements of the organisations developing and procuring the software.
Project management is needed because software development is always subject to budget and schedule constraints that are set by the organisation developing the software.
Software project management
Apr 18, 2023
Software Project Management 48
The product is intangible. The product is uniquely flexible. Software engineering is not recognized as an
engineering discipline with the same status as mechanical, electrical engineering, etc.
The software development process is not standardised.
Many software projects are 'one-off' projects.
Software management distinctions
Apr 18, 2023
Software Project Management 49
Responsibility of project managers Project proposal writing, Project cost estimation, Scheduling, Project staffing, Project monitoring and control, Software configuration management, Risk management, Managerial report writing and
presentations, etc.
Apr 18, 2023
Software Project Management 50
Software Manager Responsibilities
Proposal writing objectives justification rough working plan cost and schedule estimates
Project costing estimate book-keeping & re-
estimation Project planning and scheduling
identify activities, milestones, deliverables
plan development guide estimate resources required
Project monitoring and reviews keep track of progress compare actual to planned
progress informal on daily basis formal at scheduled reviews adapt to objective changes
Personnel selection and evaluation
weigh experience vs. cost vs. availability
consider skill development (learning process)
Report writing and presentation concise, coherent, abstract for clients & contractors
Apr 18, 2023
Software Project Management 51
These activities are not peculiar to software management.
Many techniques of engineering project management are equally applicable to software project management.
Technically complex engineering systems tend to suffer from the same problems as software systems.
Management commonalities
Apr 18, 2023
Software Project Management 52
Introduction
A project manager’s activities are varied. can be broadly classified into:
project planning, project monitoring and control activities.
Apr 18, 2023
Software Project Management 53
Project Planning
Once a project is found to be feasible, project managers undertake project planning.
Planning takes most management time!!!!!!!!!!!!!!
Apr 18, 2023
Software Project Management 54
Project Planning Activities
Estimation: Effort, cost, resource, and project duration
Project scheduling: Staff organization:
staffing plans Risk handling:
identification, analysis, and abatement procedures
Miscellaneous plans: quality assurance plan, configuration
management plan, etc.Apr 18, 2023
Software Project Management 55
Project planning
Requires utmost care and attention --- commitments to unrealistic time and resource estimates result in: irritating delays. customer dissatisfaction adverse affect on team morale
poor quality work project failure.
Apr 18, 2023
Software Project Management 56
Staffing Project Managers usually
take responsibility for choosing their team: need to identify and select good software engineers for the success of the project.
Apr 18, 2023
Software Project Management 57
Staffing A common misconception:
one software engineer is as productive as another:
Experiments reveal: a large variation in productivity
between the worst and best in a scale of 1 to 10.
Worst engineers even help reduce the overall productivity of the team
in effect exhibit negative productivity.
Apr 18, 2023
Software Project Management 58
Project staffing May not be possible to appoint the ideal people to
work on a project Project budget may not allow for the use of highly-
paid staff; Staff with the appropriate experience may not be
available; An organisation may wish to develop employee
skills on a software project. Managers have to work within these constraints
especially when there are shortages of trained staff.
Apr 18, 2023
Software Project Management 59
Project planning Probably the most time-consuming project
management activity. Continuous activity from initial concept through
to system delivery. Plans must be regularly revised as new information becomes available.
Various different types of plan may be developed to support the main software project plan that is concerned with schedule and budget.
Apr 18, 2023
Software Project Management 60
Types of project plan
Plan Description
Quality plan Describes the quality procedures and standards that will be used in a project. See Chapter 27.
Validation plan Describes the approach, resources and schedule used for system validation. See Chapter 22.
Configuration management plan
Describes the configuration management procedures and structures to be used. See Chapter 29.
Maintenance plan Predicts the maintenance requirements of the system, maintenance costs and effort required. See Chapter 21.
Staff development plan.
Describes how the skills and experience of the project team members will be developed. See Chapter 25.
Apr 18, 2023
Software Project Management 61
Project planning processEstablish the project constraints Make initial assessments of the project parameters Define project milestones and deliverableswhile project has not been completed or cancelled loop
Draw up project scheduleInitiate activities according to schedule
Wait ( for a while ) Review project progress Revise estimates of project parameters Update the project schedule Re-negotiate project constraints and deliverables if ( problems arise ) then Initiate technical review and possible revision end ifend loop
Apr 18, 2023
Software Project Management 62
The project plan
The project plan sets out: The resources available to the
project; The work breakdown; A schedule for the work.
Apr 18, 2023
Software Project Management 63
Sliding Window Planning
Involves project planning over several stages: protects managers from making
big commitments too early. More information becomes
available as project progresses. Facilitates accurate planning
Apr 18, 2023
Software Project Management 64
SPMP Document
After planning is complete: Document the plans: in a Software Project Management Plan(SPMP) document.
Apr 18, 2023
Software Project Management 65
Organization of SPMP Document
Introduction (Objectives,Major Functions,Performance Issues,Management and Technical Constraints)
Project Estimates (Historical Data,Estimation Techniques,Effort, Cost, and Project Duration Estimates)
Project Resources Plan (People,Hardware and Software,Special Resources)
Schedules (Work Breakdown Structure,Task Network, Gantt Chart Representation,PERT Chart Representation)
Risk Management Plan (Risk Analysis,Risk Identification,Risk Estimation, Abatement Procedures)
Project Tracking and Control Plan Miscellaneous Plans(Process Tailoring,Quality
Assurance)Apr 18, 2023