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 StandardsStandards
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 RolesTBD
Software Engineering IssuesTBD
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

The Software Engineering Profession SWE311The Software Enginee.docx

  • 1.
    The Software EngineeringProfession 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
  • 2.
    continue to usethe 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
  • 3.
    a host ofposition 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
  • 4.
    · Feedback canbe 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
  • 5.
    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 StandardsStandards 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
  • 6.
    This software engineeringstandard 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
  • 7.
    or methodologies tocommunicate 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
  • 8.
    · Perform reviewinternally 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 RolesTBD Software Engineering IssuesTBD References Agile Methodology (2008). Understanding Agile Methodology. Retrieved 7/17/2015 from http://agilemethodology.org/
  • 9.
    Bungie.net (2015). Engineersand 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