Phase 3/Unit 3: You are now ready to start the development effort for the financial management software. The CIO stopped by your office and stated that before the project could begin he wants you to prepare a risk assessment, human resource plan, and w

profiletwito0
antoinesims_swe311_ip3.docx

The Software Engineering Profession SWE311 The Software Engineering Profession SWE311-1503A-01 7/27/2015 Antoine Sims

Table of Contents Project Outline 2 Overview 2 IT Infrastructure 3 Software Engineering Practices 4 Methodology 4 Software Engineering Standards 7 Standards 7 Software Engineering Communications 9 Communication 9 Software Engineering Ethics and Roles 12 TBD 12 Software Engineering Issues 13 TBD 13 References 14

Phase 3. Repurposed: “This task contains portions of material that were originally submitted during the phase 3 discussion board The Software Engineering Profession in SWE311 with Professor Tricic

Project Outline

Overview

Bungie.net is a company that serves as a community role for online gamers that have been around since 1996. Gamers continue to use the site as a place to gather information about news, events and technical information on upcoming games and projects. The primary function of the site is to serve as a community hub for anything that is Bungie Studios related. Any game or project that Bungie has is available for discussion through forums. Online gamers can also track there stats for games that they play. The site also serves as a means for Bungie to get feedback about gaming experience before issuing out updates to the latest gameplay updating.

“Bungie.net leverages the Microsoft .NET Framework running on Microsoft Windows 2003 and Microsoft SQL 2000 Servers to serve up over 3 million page views per day and accumulating over 300 GB of data a month of online game statistics from the almost 1 million online games played every day. Not only is Bungie.net built to scale, but its design and inventive features have not gone unnoticed, since it was rated as the "Most Innovative Design" by IGN Entertainment. The site also exceeds a 99 percent up-time ratio even through peak usage periods such as the week of the Halo 2 release. Clearly, the release of the Bungie.net site defines a new milestone in the era of online game play. This case study provides insight into this accomplishment” (Microsoft Corporation, 2005).

IT Infrastructure

Bungie has two IT department consists of two separate entities. One of those entities is an IT department that maintains the Bungie.net website and the other is its engineering department. The engineering department is the department where Bungie creates its software for the video game that they develop. In the IT Department or Operations there are several positions such as IT engineer, IT support/server specialist, and datacenter operations specialist. These people maintain the online gaming data and the website. They deal with the servers keeping them up and running. The Engineering Department has a host of position that incorporate it such as database engineers, infrastructure/platform engineers, mobile engineers, leads, online engineers, tools engineers, game server tools engineers, engine programmers, game service engineers, activities engineers, graphics programmers, and core tools engineers. This department is responsible for the designing of some of the hit video games that we play past and present such as Halo and Destiny.

Software Engineering Practices

Methodology

A suitable methodology for this type of company would be the agile methodology. It takes a different approach than that of the traditional project management methodology. A traditional project management methodology follows a waterfall approach. This type of approach can be a crucial factor to a software project failing. In this fast pace market change occurs at an alarming rate. This is where agile methodology plays a big role in keeping up. Unlike the waterfall methodology, which promotes that, every single requirement of projects is identifiable. The agile methodology gives a project team the ability to assess the projects direction throughout the software development lifecycle.

When implementing best practices we think about eliminating any software development problems. This means poor quality, low performance, non-scalable, inability to meet user needs, unable to meet requirements change, and project flaws. Some of the root causes of these types of problems are due to poor communication, the software made too complex, and lack of testing, poor requirements, poor design, and bad architecture. Best practices take the approach by developing iteratively, managing requirements thoroughly, using component designing, modeling software visually, constant verification of quality, and addressing change control.

1. Developing Iteratively

· Before making investments critical risks can be resolved

· Feedback can be made early from early iterations

· Continuous testing and integrations are done

· Focus on milestone objectives are short term

2. Managing the Requirements

· Requirements should be dynamic – during the development expect them to change

· Expect the requirements of the user to evolve over time

· Come to an agreement on what a system should do with a user and not how

· Traceability of requirements should be maintained forward and backwards

3. Use of Component Architecture as a Basis

· Use of components allow reuse

· Choice of components can be chose from thousands of commercial components

· Extensibility and maintainability is improved

· Division of the teams of developers promotes clean work among them

4. Modeling Software Visually

· The ability to manage to complexity of software is improved by visual modeling

· Components structure and behavior can be captured

· Details can be hidden or exposed appropriately for tasks

· Unambiguous communication is promoted

5. Quality Software Verification

· Through agreed upon objective measures of requirements produce a product that meets or exceeds them

· Dramatically cuts down costly repairs to software after a finished product is deployed

· Test for functionality, reliability, and performance by developing testing suites

6. Control Changes to Software

· Maintain explicit control to subside project breakdown or confusion

· Break the architect into subsystems and assign teams to each, isolate them into secured workspaces

· Establish change control procedures that makes change control request a priority, assessments of the impacts of the change request, and parameters to introduce the change into an iteration

Software Engineering Standards

Standards

In the following diagram are three standards that the organization will use in the implementation and development of software. The diagram lists the standard, a description of what it is, and a brief summary of what the standard implies.

ISO/IEC 14764:2006

Information Technology-- Software Maintenance

This is a standard emphasizes on the maintenance process that is provided in ISO/IEC 12207. It gives guidance in the implementation of the requirements of the process.

IEEE/EIA 12207- 2008

Systems and Software Engineering - Software Life Cycle Processes

This International Standard establishes a common framework for software life cycle processes, with well-defined terminology, that can be referenced by the software industry. It applies to the acquisition of systems and software products and services, to the supply, development, operation, maintenance, and disposal of software products and the software portion of a system, whether performed internally or externally to an organization.

IEEE Std 1465-1998 // ISO/IEC 12119

IEEE Standard Adoption of International Standard ISO/IEC 12119:1994(E), Information Technology-- Software packages-- Quality requirements and testing

This software engineering standard describes quality requirements that are suitable specifically for software packages and gives guidance on testing the package against the requirements.

(Table of Standards)

The implementation of these standards will aid in the support of process and product development, to improve the quality of delivered programs. Providing adequate training will help improve the skills of the development teams. The follow the practices of the standards to achieve quality in the areas:

· Maintainability – The programs that are developed need to be manageable throughout the production process. During the runtime, easy accommodation for reconfiguration must be available. Changes in that need to take place and servicing of servers must have minimal operational impact to continue providing services that are not affected by the changes.

· Software Life Cycle – Even after producing a product, the life cycle of the video game programs does not end there. Maintenance and updating is constant. The goes through periodic checks to finds bugs and help is also comes from user feedback.

· Quality Requirements and Testing – This standard sets the standards to use to provide a top quality product that meets and exceeds the customers and users.

Software Engineering Communications

Communication

Effective communication throughout the lifecycle of a project can have a serious impact on a project. Proper communication lets the project manager, team members, and sponsors know how the project is coming along. It also keeps the project manager and team knows whether or not is the sponsors are still onboard with the project itself. Implementation of certain tools or methodologies to communicate such as reports and meetings can create an atmosphere of effective communication throughout the lifecycle of the project.

             The best practices methodology would be a great method to use to create effective communication for a project. An effective communication tool from this method encompasses a communication strategy, communication action plan, communication activity execution, and effective measurement analysis. Using best practices can help to accomplish the goals of project objectives and satisfy the customer. As the project progresses in development, the mission, strategy, operations, and technology tends to keep its course with effective communication in place. See plan below:

· Communication Strategy

· Gather request or requirements

· Identify the needs and provide strategy

· Present the strategy to the customer/ team

· Collaborate and set goals and objectives

· Obtain approval from stakeholders

· Develop Action Plan

· Communication Action Plan

· Analyze the situation of the task at hand

· Put together strategy

· Conduct meetings and or generate reports for the key team members

· The meeting or reports should define the current process

· Define the measurements

· Provide the resources to implement

· Provide timeline for work to be completed or change requests

· Proceed to execution of the plan

· Communication Activity Execution

· Execute strategy plan

· Have team draft reports on work progress

· Perform review internally and externally

· Implement changes to address better quality where as needed

· Continue to maintain adequate communication of the process throughout the project

· Manage the execution of the communication plan

· Communication Effectiveness Measurements

· Review the effectiveness of the communication process

· Implement measurements

· Collect data to analyze

· Assess for success or failure

· Make additional adjustments where as needed

· Ensure that the adjustment will provide improvement to the communication process

            The four-step systems approach from the best practices methodology can eliminate some of the problems poised in projects. When changes occur in deliverables, using the four-step system enforces the guidelines set forth by having the team to utilize the communication strategy, action plan, execution, and measurements analysis. The strategy would be to effectively communicate the change, devise a plan to implement the change, execute the change, analyze and measure the results of the change, and properly document it. Without the proper form of communication a change request can go unnoticed or for the most part delay the progress of the project due to lack of guideline to implement a change.

Software Engineering Ethics and Roles

TBD

Software Engineering Issues

TBD

References

Agile Methodology (2008). Understanding Agile Methodology. Retrieved 7/17/2015 from

http://agilemethodology.org/

Bungie.net (2015). Engineers and IT/Operations. Retrieved 7/17/2015 from

https://www.bungie.net/en/AboutUs#!page=careers

Comprehensive List of Important IEEE Software Engineering Standards. Retrieved 7/26/2015 from

http://cs.hbg.psu.edu/cmpsc487/IEEEStds_List.htm

Microsoft Corporation (2005). Bungie.net Technical Case Study. Developer Network. Retrieved 7/17/2015 from

https://msdn.microsoft.com/en-us/library/ms978497.aspx