Presentation is loading. Please wait.

Presentation is loading. Please wait.

Architecture Style 3: Abstract Data Types( Object Oriented)

Similar presentations


Presentation on theme: "Architecture Style 3: Abstract Data Types( Object Oriented)"— Presentation transcript:

1 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

2 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

3 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

4 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();     } }

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

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

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

13 Software Project Management
16-Apr-17 Software Project Management

14 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” ( (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

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). 16-Apr-17 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 : Re-engineering, self-directed teams : Risk mgmt, project offices 2000: M&A, global projects 16-Apr-17 Software Project Management

18 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

19 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

20 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

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

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

23 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

24 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

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

26 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

27 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

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

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

30 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

31 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).

32 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

33 PM-CMM (Contd.) Key Practice Areas of PM-CMM Recruiting Selection
Performance Management Training Compensation Career development Organization and work design Team/culture development

34 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

35 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

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

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

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

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

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

41 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

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

43 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

44 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

45 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

46 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

47 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

48 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

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

51 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

52 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

53 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

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

55 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

56 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

57 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

58 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

59 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

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

61 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

62 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

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

64 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

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


Download ppt "Architecture Style 3: Abstract Data Types( Object Oriented)"

Similar presentations


Ads by Google