Architecture Style 3: Abstract Data Types( Object Oriented)

Slides:



Advertisements
Similar presentations
Project management.
Advertisements

Objectives To introduce software project management and to describe its distinctive characteristics To discuss project planning and the planning process.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
Software Project Management.  Leadership  Communications  Problem Solving  Negotiating  Influencing the Organization  Mentoring  Process.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Project.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 Project management.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
Lecture 23: Software Architectures
Software Engineering General Project Management Software Requirements
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 4 Slide 1 COMP201 Project Management.
1 Software Project Management Session 1: Introduction, Fundamentals, Classic Mistakes.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 4 Slide 1 Chapter 4 Project Management “…a huge topic.” See Part 6, “Management”, Chaps.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
Creator: ACSession No: 10 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringDecember 2005 Project Management CSE300 Advanced Software Engineering.
1 SOFTWARE PRODUCTION. 2 DEVELOPMENT Product Creation Means: Methods & Heuristics Measure of Success: Quality f(Fitness of Use) MANAGEMENT Efficient &
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 5 Slide 1 Project management.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 4 Slide 1 Project management l Organising, planning and scheduling software projects l.
Project Management Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
Dr. Nguyen Hai Quan.  Overview  Classic Mistakes  Project Manager Requirements  Project Management Phases.
Software Engineering Principles Chapter 3 From Software Engineering by I. Sommerville, Slide 1 project managementorganizing planning scheduling Learning.
贾银山 Software Engineering, Chapter 5 Slide 1 Project management.
©Ian Sommerville 2000Software Engineering. Chapter 5 Slide 1 Chapter 5 Project Management “…a huge topic.” See Part 6, “Managing People”.
©Ian Sommerville 2006Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
1 Software Engineering Muhammad Fahad Khan Software Engineering Muhammad Fahad Khan University Of Engineering.
©Ian Sommerville 2000Software Engineering, 7th edition. Chapter 5 Slide 1 Chapter 5 Project Management Modified by Randy K. Smith.
Project management DeSiaMore 1.
Software Project Management Introduction to Project Management.
Lecture 3 Project Management (The Classical Approach) CSC301-Winter 2011 Hesam C. Esfahani
Chapter 3: Project Management Omar Meqdadi SE 2730 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 Chapter 5 Project management. 2 Project management : Is Organizing, planning and scheduling software projects.
Engineering, 7th edition. Chapter 5 Slide 1 Project management.
Project management Lecture 10. Topics covered Management activities Project planning Project scheduling Risk management.
ISM 5316 Week 3 Learning Objectives You should be able to: u Define and list issues and steps in Project Integration u List and describe the components.
Software Project Management By Deepika Chaudhary.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 4 Slide 1 Project management l Organising, planning and scheduling software projects.
©Ian Sommerville 2000 Slide 1 Project management l Organising, planning and scheduling software projects l Objectives To introduce software project management.
CSEM01 - wk8 - Software Planning1 Software Planning CSEM01 SE Evolution & Management Anne Comer Helen Edwards.
Project management.  To explain the main tasks undertaken by project managers  To introduce software project management and to describe its distinctive.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
COOP Seminar – Fall 2008 Slide 1 HOUSTON COMMUNITY COLLEGE SYSTEM SAIGONTECH SAIGON INSTITUTE OF TECHNOLOGY Software Project Management.
Chapter 3 Project Management Chapter 3 Project Management Organising, planning and scheduling software projects.
Lecture 1 Introduction, Fundamentals, Classic Mistakes 1.
IT Software Project Management
Software Engineering, 8th edition. Chapter 5 1 Courtesy: ©Ian Sommerville 2006 Oct 13 th, 2008 Lecture # 6 Project management.
1 emeronTI 1 esckþIepþIm énkarRKb;R KgKMerag. 2 esckþIepþIm IT/Skill/JobAverage annual Salary 1SQL Database Analyst80,664$ 2Oracle Database Analyst87,144$
1 Project management. 2 Topics covered Management activities Project planning Project scheduling Risk management.
CSC480 Software Engineering Lecture 5 September 9, 2002.
Dr Izzat M Alsmadi Edited from ©Ian Sommerville & others Software Engineering, Chapter 3 Slide 1 Project management (Chapter 5 from the textbook)
Chap 4. Project Management - Organising, planning and scheduling
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 4 Slide 1 Project management l Organising, planning and scheduling software projects.
©Ian Sommerville 2000Software Engineering. Chapter 5 Slide 1 Chapter 5 Project Management “…a huge topic.” See Part 6, “Managing People”.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
Project management 1/30/2016ICS 413 – Software Engineering1.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
1 Project Management Software management is distinct and often more difficult from other engineering managements mainly because: – Software product is.
Introduction to Project management and Principles.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 4 Slide 1 Chapter 4: Project management l Organising, planning and scheduling software.
Project management (2) By: Zhou Chunlin School of Tourism, Conference and Exhibitions Henan University of Economics and Law.
Chapter 3 Project Management Parts of this presentation is extracted from Ian Sommerville’s slides located at
1 Project management Organising, planning and scheduling software projects.
1 Project Management Skills Leadership Communications Problem Solving Negotiating Influencing the Organization Mentoring Process and technical expertise.
Project management Chapter 5. Objectives To explain the main tasks undertaken by project managers To introduce software project management and to describe.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
COMP201 Project Management.
Cost Estimation Models
Software Project Management
Project management.
Software Project Management
Presentation transcript:

Architecture Style 3: Abstract Data Types( Object Oriented) Examples: abstract data types object 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 Disadvantages objects must know the identity of objects they wish to interact with 16-Apr-17 Software Architecture and Design

Architecture Style 4: Event Based (Implicit Invocation) Examples debugging systems (listen for particular breakpoints) database management systems (for data integrity checking) graphical user interfaces Interesting properties announcers of events don’t need to know who will handle the event Supports re-use, and evolution of systems (add new agents easily) Disadvantages Components have no control over ordering of computations 16-Apr-17 Software Architecture and Design

Software Architecture and Design Explicit Invocation class Client {     ServiceProvider sp;     public void f() {    ...    sp.someService();         ...     } } class ServiceProvider {     public void someService() {         ...     } } 16-Apr-17 Software Architecture and Design

Implicit Invocation public 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();     } }

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 Disadvantages May not be able to identify (clean) layers 16-Apr-17 Software Architecture and Design

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 Disadvantages blackboard becomes a bottleneck 16-Apr-17 Software Architecture and Design

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 16-Apr-17 Software Architecture and Design

Software Architecture and Design Process Control 16-Apr-17 Software Architecture and Design

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. 16-Apr-17 Software Architecture and Design

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. 16-Apr-17 Software Architecture and Design

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. 16-Apr-17 Software Architecture and Design

Software Architecture and Design 16-Apr-17 Software Architecture and Design

Software Project Management 16-Apr-17 Software Project Management

Motivation for Studying Project Management 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). 16-Apr-17 Software Project Management

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). 16-Apr-17 Software Project Management

Project Management Skills Leadership Communications Problem Solving Negotiating Influencing the Organization Mentoring Process and technical expertise

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 16-Apr-17 Software Project Management

Software 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 Temporary: can be years Result can be lasting Team can be temporary Finite duration Ex: thousands of buildings, but each is unique Scope s/b constant even as elaboration happens 16-Apr-17 Software Project Management

Interactions / Stakeholders As a PM, who do you interact with? Project Stakeholders Project sponsor Executives Team Customers Contractors Functional managers managing all stakeholder Expectations is challenging – conflict 16-Apr-17 Software Project Management

Software Project Management 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 16-Apr-17 Software Project Management

Software Project Management Tools: Gantt Chart 16-Apr-17 Software Project Management

Tools: Network Diagram 16-Apr-17 Software Project Management

Software Project Management PMI’s 9 Knowledge Areas Project integration management Scope Time Cost Quality Human resource Communications Risk Procurement If you study for the PMI certification you’ll need to know these 16-Apr-17 Software Project Management

Software Project Management First Principles One size does not fit all Patterns and Anti-Patterns Spectrums Project types Sizes Formality and rigor Like families, each dysfunctional in it’s own “special way” Classic Mistakes later == Anti Different sizes need different choices from the PM 16-Apr-17 Software Project Management

Software Project Management Why Rapid Development Faster delivery Reduced risk Increased visibility to customer Don’t forsake quality 16-Apr-17 Software Project Management

Software Project Management Strategy Classic Mistake Avoidance Development Fundamentals Risk Management Schedule-Oriented Practices McConnell refers to “Pillars” These provide balance 16-Apr-17 Software Project Management

Four Project Dimensions People Process Product Technology Peopleware issues 10-to-1 difference in Dev productivity Teams 3 or 5 to 1 diff Process Dev basics, risk mgmt, QA, lifecycle planning, customer orientation Product Most tangible dimension Technology 16-Apr-17 Software Project Management

Software Project Management Trade-off Triangle Fast, cheap, good. Choose two. 16-Apr-17 Software Project Management

Software Project Management Trade-off Triangle Know which of these are fixed & variable for every project 16-Apr-17 Software Project Management

Software Project Management 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 Teams: 5-to-1 range 16-Apr-17 Software Project Management

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 People 2 Other success factors Matching people to tasks Career development Balance: individual and team Clear communication 16-Apr-17 Software Project Management

Software Project Management Process Is process stifling? 2 Types: Management & Technical Development fundamentals Quality assurance Risk management Lifecycle planning Avoid abuse by neglect cut time-to-market Improve quality 16-Apr-17 Software Project Management

Software Project Management Process 2 Customer orientation Process maturity improvement Rework avoidance 16-Apr-17 Software Project Management

Software Project Management Product The “tangible” dimension Product size management Product characteristics and requirements Feature creep management 16-Apr-17 Software Project Management

Software Project Management Technology Often the least important dimension Language and tool selection Value and cost of reuse 16-Apr-17 Software Project Management

Software Project Management Planning Determine requirements Determine resources Select lifecycle model Determine product features strategy 16-Apr-17 Software Project Management

Software Project Management Tracking Cost, effort, schedule Planned vs. Actual How to handle when things go off plan? 16-Apr-17 Software Project Management

Software Project Management Measurements To date and projected Cost Schedule Effort Product features Alternatives Earned value analysis Defect rates Productivity (ex: SLOC) Complexity (ex: function points) 16-Apr-17 Software Project Management

Technical Fundamentals Requirements Analysis Design Construction Quality Assurance Deployment 16-Apr-17 Software Project Management

Software Project Management 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 16-Apr-17 Software Project Management

Software Project Management 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! 16-Apr-17 Software Project Management

Software Project Management 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. 16-Apr-17 Software Project Management

Software Project Management Introduction Goal of software project management: enable a group of engineers to work efficiently towards successful completion of a software project. 16-Apr-17 Software Project Management

Software project management 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. 16-Apr-17 Software Project Management

Software management distinctions 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. 16-Apr-17 Software Project Management

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. 16-Apr-17 Software Project Management

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 16-Apr-17 Software Project Management

Management commonalities 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. 16-Apr-17 Software Project Management

Software Project Management Introduction A project manager’s activities are varied. can be broadly classified into: project planning, project monitoring and control activities. 16-Apr-17 Software Project Management

Software Project Management Project Planning Once a project is found to be feasible, project managers undertake project planning. Planning takes most management time!!!!!!!!!!!!!! 16-Apr-17 Software Project Management

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. 16-Apr-17 Software Project Management

Software Project Management 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. 16-Apr-17 Software Project Management

Software Project Management Staffing Project Managers usually take responsibility for choosing their team: need to identify and select good software engineers for the success of the project. 16-Apr-17 Software Project Management

Software Project Management 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. 16-Apr-17 Software Project Management

Software Project Management 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. 16-Apr-17 Software Project Management

Software Project Management 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. 16-Apr-17 Software Project Management

Software Project Management Types of project plan 16-Apr-17 Software Project Management

Project planning process Establish the project constraints Make initial assessments of the project parameters Define project milestones and deliverables while project has not been completed or cancelled loop Draw up project schedule Initiate 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 if end loop 16-Apr-17 Software Project Management

Software Project Management The project plan The project plan sets out: The resources available to the project; The work breakdown; A schedule for the work. 16-Apr-17 Software Project Management

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 16-Apr-17 Software Project Management

Software Project Management SPMP Document After planning is complete: Document the plans: in a Software Project Management Plan(SPMP) document. 16-Apr-17 Software Project Management

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) 16-Apr-17 Software Project Management