SDLC

January 6, 2018 | Author: Anonymous | Category: Engineering & Technology, Computer Science, Computer Programming
Share Embed Donate


Short Description

Download SDLC...

Description

SYSTEM DEVELOPMENT

CLASS OBJECTIVES

To understand and identify the challenges of modern information systems acquisition and management To acquire skills and strategies for becoming effective and efficient in all phases of planning, and managing application development To directly experience the methods and practice of systems analysis and design from the MIS perspective 2

REVIEW: ASSIGNMENT #1 AND THIS CLASS

3

WHAT SAD TOPICS ARE A PRIORITY? We only have 1-semester to study SAD! Too many topics, so must prioritize and focus on the key areas. How shall we determine this? Ans: We will interview MIS professionals to help us determine priorities, needed skills, and important tools/techniques

4

ASSIGNMENT #1: SAD AND MIS Task is to interview an “MIS professional” about SAD topics. “What should a successful MIS person know?”  http://itmvm.shidler.hawaii.edu/itm353/asst1.htm  Reports will be aggregated to develop a set of topics we will focus on this semester!  ** NOT MUCH TIME TO COMPLETE THIS ** 



Have you signed up an MIS professional ? 5

EXERCISE: PLANNING A WEDDING 

3 months from now; 200 guests (20% from out of state); $15,000 budget     

What do you need to do? Who does what? How do you get started? What are the tradeoffs? How confident are you that you can succeed?

CHAPTER 1

Project Team Roles and Skills

7

THE TAR PIT Developing large software systems is "sticky"  Projects usually emerge from the tar pit with running systems, but most missed goals, schedules, and budgets  "No one thing seems to cause the difficulty – any particular paw can be pulled away. But the accumulation of simultaneous and interacting factors brings slower and slower motion"  Analogy meant to convey that it is hard to discern the nature of the problem(s) facing software development 

8

WHY ARE SOFTWARE PROJECTS LATE? Estimating techniques are poorly developed Our techniques confuse effort with progress Since we are uncertain of our estimates, we don't stick to them Progress is poorly monitored When slippage is recognized, we add people ("like adding gasoline to a fire")

9

OPTIMISM "All programmers are optimists" "All will go well" with the project – thus we don't plan for slippage However, with the sequential nature of our tasks, the chance is small that all will go well

10

THE MYTHICAL MAN-MONTH Cost does indeed vary as the product of the number of people and the number of months Progress does not!!

11

MMM - 2 

The unit of man-month implies that people and months are interchangeable This is only true when a task can be partitioned among many workers with no communication among them  When a task is sequential, more effort has no effect on the schedule – many tasks in software engineering have sequential constraints 

12

MMM - 3 Most tasks require communication among workers Communication consists of Training Sharing information (intercommunication)

Training affects effort at worst linearly Intercommunication adds n(n-1)/2 to effort – if each worker must communicate with every other worker

13

DEVELOPMENT TEAM How should the development team be arranged? The problem: good programmers are much better than poor programmers Typically 10 times better in productivity Typically 5 times better in terms of program elegance

14

THE DILEMMA OF TEAM SIZE Consider a 200-person project with 25 experienced managers The previous slide argues for firing the 175 workers and use the 25 managers as the team

15

THE DILBERT VIEW

TWO NEEDS TO BE RECONCILED For efficiency and conceptual integrity a small team is preferred To tackle large systems considerable resources are needed Some solutions: Harlan Mill's Surgical Team approach – one person performs the work, all others perform support tasks Pair programming 17

THE PROPOSED SURGICAL TEAM Surgeon – chief programmer  Co-pilot – like surgeon but less experienced  Administrator – relieves surgeon of administrative tasks  Editor – proof-reads documentation 

2 Secretaries – support administrator and editor  Program clerk – tracks versions  Toolsmith – supports work of the Surgeon  Tester  Language lawyer 

18

HOW IS THIS DIFFERENT? Normally, work is divided equally – now only the surgeon and copilot divide the programming work  Normally each person has equal say – now surgeon is the absolute authority  Note communication paths are reduced 

Normally 10 people -> 45 paths  Surgical Team -> at most 13 paths 

19

HOW DOES THIS SCALE? Reconsider the 200 person team – communication paths -> 19,900! Create 20 ten-person surgical teams Now only 20 surgeons must work together – 20 people -> 190 paths, two orders of magnitude less Key problem is ensuring conceptual integrity of the design (integration issues)

20

WHY DID THE TOWER OF BABEL FAIL? Communication (the lack of it) made it impossible to coordinate How do you communicate in large project teams? – informal (telephone, email), meetings, workbook 21

WHY DID THE TOWER OF BABEL FAIL? - 2 

Workbook Structure placed on project's documentation  Technical prose lives a long time, best to get it structured formally from the beginning, also helps with distribution of information 

22

WHY DID THE TOWER OF BABEL FAIL? - 3. 

Team Dynamics Teams can (and sometimes do) fail  You will need to do some actual work to make your team successful! 



Let’s learn about the “One Bad Apple” syndrome

23

PROGRAMMING PROJECT EXAMPLE ROLES 

A project leader 



An architect 



provides the fundamental design for the program, ensures that design is implemented, finds alternatives when things don't work or time is a problem

A requirements satisfaction lead 



schedules meetings, keeps track of progress, tracks and reports risks, assigns specific tasks and makes sure they get done (or finds alternatives), is the communication hub for the team

clarifies project requirements, ensures that requirements are met by providing test cases, inspections, checklists, etc.

A test lead 

performs tests, analyses results, reports on tests

24

PROGRAMMING PROJECT EXAMPLE ROLES -2 

A lead programmer 



breaks apart programming tasks into parts that can be naturally integrated later, estimates programming effort for parts, works with project leader to assign programming tasks, performs critical-path programming tasks, ensures that parts meet quality and functionality expectations

A quality lead 

ensures that the program and related materials meet quality expectations, reports on quality issues, performs quality improvement (i.e. clean-up) as needed, in particular, is responsible for ensuring code has adequate documentation, sets and ensures that user interface meets usability expectations, establishes acceptable level of defect (e.g. "bugs") tolerance, presents plans for improving quality and enforcement of plan

25

PROJECT TEAM SKILLS AND ROLES Projects should consist of a variety of skilled individuals in order for a system to be successful.  Six major skill sets an analyst should have include: 

     

Technical Business Analytical Interpersonal Management Ethical 26

INTRO TO THE SDLC

A “Simple” Process for Making Lunch

Slide 28

IS A SDLC REALLY NECESSARY? You have 5 mins to write instructions on how to make a peanut butter and jelly sandwich GO!!!

IS A DEVELOPMENT PROCESS REALLY NECESSARY? 

How can you help ensure…          

you will make the correct thing? you will make the thing correctly? you did not leave out something important? you did not add something unnecessary? you will stay on budget (e.g. time)? you make efficient/effective use of your time? you can plan your effort realistically? you do not get derailed by problems? you are getting the best possible outcome? you enable changes and updates later?

THE PROJECT AND ITS LIFECYCLE 

The project Moves systematically through phases where each phase has a standard set of outputs (deliverables)  Each deliverable is an input to the next phase  Through a process of gradual refinement this results in actual information system 

PROJECT PHASES 

Planning (or Initiation) 



Analysis 



How will the system work?

Implementation 



Who, what, when, where will the system be?

Design 



Why build the system?

System delivery

Maintenance/evolution

PLANNING Identifying business value  Analyze feasibility  Develop work plan  Staff the project  Control and direct project 

ANALYSIS Information gathering  Process modeling  Data modeling 

DESIGN Physical design  Architectural design  User Interface design  Database and file design  Program design 

IMPLEMENTATION Construction  Installation  Transition 

PROCESSES AND DELIVERABLES Process

Product

Planning

Project Plan

Analysis

System Proposal

Design Implementation

Slide 37

System Specification New System and Maintenance Plan

SDLC METHODOLOGIES 



A development process implements the SDLC There are many development processes    

 

Risk is the main determiner as to what process to use (or to use one at all) There are only two basic approaches  



Waterfall Spiral Agile methods RAD

Structured (or “data flow” oriented) OOAD

Each approach has it benefits and liabilities Context of the problem decides (for most modern systems OOAD is best)  However it is often useful to mix approaches 

OBJECT-ORIENTED ANALYSIS AND DESIGN Attempts to balance emphasis on data and process Often uses Unified Modeling Language (UML) for diagramming Use-case Driven Architecture Centric Iterative and Incremental

Example methodology: RUP

Slide 39

AGILE APPROACH http://agilemanifesto.org/

SELECTING A DEVELOPMENT METHODOLOGY http://software-quality.blogspot.com/2006/10/riskbased-selection-for-agile.html  http://www.construx.com/File.ashx?cid=817  Mostly based on risk considerations 

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF