CH 1 Discussion
Describe the roles of and activities performed by the business analyst and system analyst.
A BUSINESS ANALYST identifies the business value that a system will create, develops ideas and suggestions that improve the business process, and designs new processes and policies. Work experience of a business analyst is probably in the functional field or application, such as accounting, marketing or production management. A SYSTEMS ANALYST develops ideas and suggests technology innovation to business processes, designs new business process and information systems, and ensures that IS standards are maintained. Work experience of a systems analyst is probably in analysis and design, programming, or some business area.
Briefly explain what the creators of the Unified Modeling Language (UML) mean by architecture centric
ARCHITECTURE CENTRIC means that the development of the system is based on an initial understanding of the overall software architecture of the system from three perspectives or views. The functional view is a description of the system from the perspective of the user and focuses on what the system will do. The static view shows the classes of objects that make up the system, what they hold (attributes and methods), and their relationships. The behavioral view shows the messages sent between the objects and tracks their state changes.
Describes the roles of and activities performed by the infrastructure and change management analysts.
An INFRASTRUCTURE ANALYST ensures the new system conforms to organizational standards and identifies infrastructure changes needed (to the network, database, hardware and software). Work experience of an infrastructure analyst is probably in networking, database administration, or various hardware or software systems. A CHANGE MANAGEMENT ANALYST ensures that there is adequate documentation, user support, training, and change management strategies. Work experience of the change management analyst is probably in organizational behavior (any business field).
Briefly discuss the difference between dynamic and static binding.
Dynamic binding is a technique that delays typing the object until run-time. As such, the specific method that is actually called is not chosen by the object-oriented system until the system is running. This is in contrast to static binding. In a statically bound system, the type of object is determined at compile time. Therefore, the developer has to choose which method should be called instead of allowing the system to do it.
Briefly explain what the creators of the Unified Modeling Language (UML) mean by iterative and incremental.
ITERATIVE AND INCREMENTAL means that the development of the system undergoes continuous testing and refinement throughout the life of the project. It means you make some progress and before going forward, you go over everything you've done to make sure everything fits well and nothing is missing. The three architectural perspectives help. The analyst begins by working with the user to develop the functional view. He /she then uses this view to draft the static and behavioral views. In so doing he/she may discover discrepancies and missing requirements. He/she revisits the functional view. This continues until the three views are in sync.
Briefly explain the idea behind extreme programming (XP).
In XP, developers not only accept change but embrace change. They provide quick feedback to the end-users on a continuous basis, and follow the KISS (Keep It Simple Stupid) principle for system development. Developers make incremental changes as the system grows in functionality and size. Continuous testing, programming in pairs by developers and close interactions with end users are hallmarks of the XP approach. XP relies on refactoring, which is a disciplined way to keep the code simple.
Briefly discuss the difference between abstract classes and concrete classes.
Most classes throughout a hierarchy will lead to instances; any class that has instances is called a concrete class. For example, if Mary Wilson and Jim Maloney were instances of the Patient class, Patient would be considered a concrete class. Some classes do not produce instances because they are used merely as templates for other more specific classes (especially those classes located high up in a hierarchy). The classes are referred to as abstract classes. Person is an example of an abstract class. Instead of creating objects from Person, we create instances representing the more specific classes of Specialist and Patient, both types of Person.
Briefly describe the benefits of Object-Oriented Systems Analysis and Design (OOSAD)
OOSAD allows analysts to break problems down into smaller, manageable modules, work on the modules individually, and then put the pieces together to build the system. Modules make the system easier to understand, work on, and share. The pieces are reusable saving time in future projects. And "object think" is more natural for humans when compared to the structured approaches that focus on either data structures or process flows. Humans understand things better when they can see both at once.
Briefly explain the idea behind Object-Oriented Systems Analysis and Design (OOSAD)
OOSAD decomposes a problem using both process and data models, emphasizing neither. It uses "objects" and these carry both data and processes. OOSAD was a response to traditional approaches that deliberated on whether to focus primarily on data models or on process models. Emphasizing data models has its benefits as does emphasizing process models. By taking a balanced approach OOSAD seeks to gain the key benefits from modeling data structures and process flows.
Explain the idea of prototyping and indicate when prototyping is appropriate.
Prototyping performs the analysis, design, and implementation phases of the SDLC concurrently and cyclically until the system is completed. This approach allows the analyst to quickly refine the user-requirements and to quickly get a system in the hands of the users (as long as it's not a large, complex application that many people need to use).
Briefly describe the SCRUM agile development methodology.
Scrum development focuses on a few key practices. First, teams are self-organized and self-directed. Unlike other approaches, Scrum teams do not have a designated team leader. Instead, teams organize themselves in a symbiotic manner and set their own goals for each sprint (iteration). Second, once a sprint has begun, Scrum teams do not consider any additional requirements. Any new requirements that are uncovered are placed on a backlog of requirements that still need to be addressed. Third, at the beginning of every workday, a Scrum meeting takes place. Fourth, at the end of each sprint, the team demonstrates the software to the client. Based on the results of the sprint, a new plan is begun for the next sprint. One of the major criticisms of Scrum, like all agile methodologies, is that it is questionable whether Scrum can scale up to develop very large, mission-critical systems. A typical Scrum team size is no more than seven members.
Briefly describe the idea behind structured design approach to systems development.
Structured design represents a number of methodologies that adopt a formal, step-by-step approach for proceeding through the SDLC. These methodologies emphasize carefully determining user requirements on paper prior to actual construction of the system. Waterfall development model and parallel development model are examples of structured design.
Briefly summarize the role and contribution of the Business Analyst, Systems Analyst, Infrastructure Analyst, Change Management Analyst, and Project Manager on a systems development project team.
The Business Analyst role exists to assure that the interests of the end users and project sponsor are represented on the project team. The Systems Analyst role exists to assure that the available information technology is applied appropriately to the users/sponsors business needs. The Infrastructure Analyst role exists to deal with technical concerns about the new systems hardware, software, and networking components. The Change Management Analyst role exists to attend to the process of assimilating the new system in the organization. The Project Manager role exists to ensure timely completion of the project, fulfillment of user/sponsor requirements, and appropriate usage of project resources.
Briefly discuss the RAD methodology and mention its advantages and disadvantages.
The RAD (Rapid App development) methodologies attempt to address the weaknesses of the structured design methodologies by adjusting the phases of the SDLC to get parts of the system completed and in the hands of the users quickly. Analysis, design, and implementation are all speeded up. The advantages include the speed and quality of systems development, while the key disadvantage is the need to manage user expectations.
Briefly describe the idea behind the RAD approach to systems development.
The RAD (Rapid Application Development) methodologies attempt to accelerate the process of developing systems, and also utilize a variety of new tools and techniques that help avoid the painstaking preparation of paper-based specifications. Most RAD methodologies recommend the usage of special tools such as CASE tools and special techniques such as joint application development (JAD) sessions. Such tools and techniques improve the speed and quality of systems development. However, managing user expectations of what is possible and what is not becomes difficult in RAD methodologies. Phased development, prototyping and throwaway prototyping are examples of RAD methodology
Briefly describe the Unified Process (UP).
The UP is used for systems development and relies on a two-dimensional process of phases and workflows. The phases are inception, elaboration, construction, and transition. The phases measure how far along the project is. The workflows include business modeling, requirements, analysis, design, implementation, test, deployment, configuration and change management, project management, and environment. Each phase can be further broken down into iterations as needed. The key idea is that the traditional phases (planning, analysis, design, and implementation) are actually workflows, not phases. Along with other workflows, in the UP the traditional SDLC phases are activities carried out iteratively and incrementally throughout the project. Each iteration carries out a variety of workflows in parallel, emphasizing some workflows over others depending on how far along the project is.
Briefly describe the phases of the Unified Process.
The UP phases are inception, elaboration, construction, and transition. In the INCEPTION PHASE the team sets out to build the business case for the system. It includes carrying out technical, economic, and organizational feasibility studies. In order to build the business case it may be necessary to deploy a tentative solution. The primary deliverables for the inception phase are the vision document and the decision of what environment to use to develop the system. In the ELABORATION PHASE enough details are added to the vision document to finalize the business case, revise the risk assessment, and complete the project plan. The primary focus for this phase is on the analysis and design workflows. In the CONSTRUCTION PHASE the system is built to the point where it is ready for beta and acceptance testing. In this phase the focus is primarily on programming. It is during this phase that missing requirements are uncovered, so the requirements workflow is still active. In addition, the configuration and change management workflow becomes increasingly important during this phase. In the TRANSITION PHASE the goal is delivery of the actual executable information system including user manuals, maintenance plan, and upgrade plan. The focus in this phase is on the testing and deployment workflows.
Briefly explain why the Unified Process (UP) was modified.
The UP was modified to account for staffing issues, operational issues after deployment, and integration (or cross-project) issues. The Extended UP recognizes a phase after deployment. This is the Production Phase. In addition, two workflows were added. They are the operations and support workflow and the infrastructure management workflow. Lastly, some of the existing workflows were modified to account for emerging standards (OPEN and the OO Software Process).
Briefly describe the Unified Modeling Language (UML).
The objective of the UML was to provide a common vocabulary of terms and diagramming techniques rich enough to model any systems development project. Version 2.0 of the UML defines a set of fourteen diagramming techniques. The six structure diagrams are class, object, package, deployment, component, and composite structure diagrams. The eight behavior modeling diagrams are activity, sequence, communication, interaction overview, timing, behavior state machine, protocol state machine, and use-case diagrams. Overall, the consistent notation, integration among the diagramming techniques, and application of the diagrams across the entire development process makes the UML a powerful and flexible language for analysts and developers.
Explain the role of a project manager in an IS project.
The project manager is responsible for completing the project on-time and within budget. He/she is also responsible for ensuring that the completed system delivers all the benefits that were originally intended by the project sponsor. Project manager manages team members, develops work plan, assigns resources and is the primary point of contact for the project. He/she would have worked as a systems analyst for a significant amount of time prior to becoming the project manager.
Briefly compare and contrasts the roles and responsibilities of the project manager and the business analyst.
The project manager leads the project team; the business analyst is a team member. The project manager is responsible for overall project success; the business analyst is responsible for making sure the interests of the users and sponsor are met. The project manager's primary focus is on the project; the business analyst's primary focus is on the business. The project manager oversees technical and business people on the project team and does not necessarily have to be a technical wizard or an expert in the business, but it helps if he/she is proficient at both; the business analysts is the business expert on the team charged with making sure the technology delivers business value and does not have to be a technical wizard, but it helps if he/she is proficient with technology.
Briefly summarize the purpose of the analysis phase in SDLC. Explain why it exists and what it contributes to the completion of the system.
The purpose of the analysis phase is to determine the business needs of the new system and to develop a preliminary concept for the new system. The Analysis Phase exists in order to assure that the problems being experienced by the business unit are well understood and will be resolved through the features and functionality of the proposed system. The Analysis Phase serves to gather sufficient information to assure that the system will correct the actual problems of the organizational unit. System objectives will be clarified during this phase, and user and business requirements will be defined in detail.
Briefly summarize the purpose of the design phase in SDLC. Explain why it exists and what it contributes to the completion of the system.
The purpose of the design phase is to determine how technology will be used to fulfill the business needs defined in the Analysis phase. Design decision will be made regarding the technology infrastructure, user interface, file and database, and program components of the new system. These system elements must be designed prior to construction so that the system will meet user and business needs upon implementation.
Briefly summarize the purpose of the implementation phase in SDLC. Explain why it exists and what it contributes to the completion of the system.
The purpose of the implementation phase is to develop a production version of the system. The system components that were outlined in the design phase are created using the target technology, tested, and then introduced to the end users. This phase brings all the previous ideas into fruition as an actual working system is put into production in the organization.
Briefly summarize the purpose of the planning phase in SDLC. Explain why it exists and what it contributes to the completion of the system.
The purpose of the planning phase is to determine if the system request will provide value to the organization and to prepare a plan for completing the project. The Planning Phase exists so that the IS department and the project sponsors/users can develop an initial vision of the new system, establish its primary objectives, and perform a preliminary feasibility study that will evaluate the project's value to the organization and its estimated costs. With this information the organization's management can objectively assess whether the project has merit. The work done in this phase helps establish the project scope, define objectives and expectations, develop a plan for the project, and determine if the project warrants committing additional resources to its completion.
Explain the idea behind throw-away prototyping? When is it appropriate?
Throw-away prototyping is done at a different point in the SDLC than prototyping. It is done after a fairly thorough analysis phase has determined the user requirements, but when various technical issues may need to be solved or some of the user requirements may still be unclear. The design prototype is not a working system, just part of it. Thus, when the prototype is finished, there is not a complete system to deliver to the users. It may take longer to develop systems using throwaway prototyping. But it is suitable in projects where the requirements and/or technology issues are not well understood after the analysis phase. Projects that need to deliver reliable systems often use the throwaway prototyping technique.
Briefly explain what the creators of the Unified Modeling Language (UML) mean by use-case driven iterative and incremental.
USE-CASE DRIVEN means that use cases are the primary tools for modeling the behavior of the system. A use case is a description of the interaction between the system and the user as the user seeks to accomplish a particular goal. Rather than decomposing processes into sub-processes, and sub-processes into sub-sub-processes, etc., etc., . . . , as is done in traditional structural analysis, use cases allow the analyst to focus on one process at a time without losing track of how all the use cases are interrelated.
Indicate the four phases of the waterfall approach and mention its advantages and disadvantages.
Waterfall is a sequential process that has each of the four phases (planning, analysis, design, and implementation) completed following the previous one. The two advantages are that requirements are identified long before programming and changes are minimized. The two disadvantages are an extensive paper trail and the time that passes from initial proposal and system completion.