1 / 13

Software Engineering “Practical Approach”

Explore the systematic development process, effort distribution, and team roles in software engineering. Learn about planning, coding, testing, error correction, preventive maintenance, and more.

ayersc
Download Presentation

Software Engineering “Practical Approach”

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Engineering “Practical Approach”

  2. Software effort distribution 1/3 Planning 1/6 Coding 1/4 Component testing 1/4 System testing Planning Coding Testing Error Correction Preventive Software Maintenance: 20% errorcorrection 20% adaptation 60% enhancements Adaptation Enhancements

  3. Definition Software Engineering: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.

  4. Contents. • Software Development Life Cycles (Methodologies)(Idea, planning, requirements, design, implementation, testing, maintenance) • Water fall • V-Model • Agile Methodology • Business Requirement Document (BRD) Vs System Requirement document (SRD) • Data Access Object • Design Patterns • Prerequisite: Inheritance • Prerequisite: Encapsulation

  5. Contents Cont. • Unit testing (Using Junit and Mocks) • Integration Tests • Service Oriented Architecture • Software as a service • Tools: • Version Control Software (git) • Code Review • Bug (features) tracking system • Soft Skills (Interview Questions) • Example: Do you remember a conflict with one of your teammates? What was the issue and how did you resolve it?

  6. Software Development Team • Program Manager • UI Designer • SDE • SDET • QA • Team Lead (Manager)

  7. Program Manager (Microsoft) • Responsibilities: • Define and deliver components for our ecosystem • Create, evolve, and communicate feature area specifications • Demonstrate a strategic understanding of the timing and rationale for design choices for a feature area • Help define and document the product vision • Qualifications • Have a proven track record of clear written and oral communication • Work well in groups and with customers & partners and demonstrate high emotional intelligence • Have a strong developer/coding background (TPM)

  8. SDE (Amazon) • BASIC QUALIFICATIONS • 2+ years of software development experience and a degree (BS, MS, or higher) in computer science or a related discipline• Fluency and experience in either Java or C#• Excellent problem solving ability and detailed knowledge of object-oriented design and development • PREFERRED QUALIFICATIONS • Experience building and operating highly available (24x7) systems• Designing and implementing highly scalable RESTful web services

  9. UX Designer (Microsoft) • Responsibilities: • Simplify and distill complex business processes into intuitive and elegant UI • Work closely with cross-functional teams to help define business and feature requirements, user scenarios and use cases. • Create process flows, wireframes, and mockups • Qualifications • Bachelor's degree in design, human-computer interaction (HCI) • Proficiency in a variety of design tools such as Photoshop, Illustrator, Fireworks and InDesign. • Ability to create design prototypes in HTML, JavaScript, CSS. • Excellent communication, presentation, interpersonal and analytical skills.

  10. SDET (Groupon) • Responsibilities: • Design and implement tools and infrastructures that will be utilized across multiple test and development teams. • Help developers write better tests • Ensure test coverage of new and existing features. • Analyze for potential problems before code has been committed. • Qualifications • Experience with compiled languages such as Java, C#. • Experience with automated testing tools and technologies, including but not limited to Selenium, Capybara, Watir, and Sahi. • Proficiency with scripting languages such as Ruby or Python.

  11. QA (Amazon) • Responsibilities: • Be responsible for manual and automated testing of features across various platforms including web and mobile • Own the development and execution of test plans and test cases • Create and edit automated test cases • Triage crash logs • Qualifications • Ability to create scripts from scratch in at least one language • Understanding of Object Oriented programming basics and ability to edit code • Hands-on experience with manual and automated testing, with expertise in SQA methodologies, techniques, and approaches • Experience leading a variety of types of testing, including regression, performance, stress, unit, integration, and security testing

  12. Team Lead (Twitter) • Responsibilities: • Effectively coach, mentor and guide the technical and professional development of the members of the team. • Scale the team up by sourcing and hiring both externally and internally, and keep a super high bar while doing so! • Ensure the team fully understands the goals and objectives of Twitter as a company and how their work fits into the bigger picture. • Partner with product vertical teams to capture requirements • Qualifications • Strong CS fundamentals • A solid grasp on good software engineering practices. • Great communication skills.

  13. Reference Reference: • Software Engineering, 9th Edition by Ian SommerVille, available online @ http://faculty.mu.edu.sa/public/uploads/1429431793.203Software%20Engineering%20by%20Somerville.pdf • Other online resources

More Related