00:00:11 Hi and welcome to another session of the Microsoft Virtual Academy.
00:00:15 In this session, we're going to take a look at some software
00:00:17 development fundamentals.
This will actually focus on some preparation 00:00:21 for our MTA, Microsoft Technology
Associate, Certification Exam 00:00:26 98- 361.
And we'll cover some core fundamentals that you'll need
00:00:30 to understand as you get started in software programming.
00:00:33 So let's go ahead and introduce who your presenters are today.
00:00:38 My name is Gerry O'Brien and I'm a Technical Content Development
00:00:42 Manager here at Microsoft.
00:00:44 I've been focusing on the developer and the SQL Server platforms
00:00:47 for sometime.
I'm also a content author.
In a little over 18 00:00:51 years of experience, eight and a
half of that here at Microsoft, 00:00:54 and I'm a Microsoft Certified Trainer,
been a software developer 00:00:59 and a consultant in the industry,
written numerous books on IT 00:01:02 topics and actually written a few
courses, as well, currently 00:01:06 programed in Visual Basic, C#, Java
and Objective-C and the most 00:01:10 important part I like to have at
the last is I'm a life-long 00:01:12 learner, so like you, I enjoy learning
about technology, that 00:01:15 is where I'm at today, I continuously
learn on a daily basis.
00:01:20 So now I'll let Paul introduce himself.
00:01:24 >> Paul Pardi: Hi.
My name is Paul Pardi and I'm a Content Development 00:01:28 Lead at Microsoft.
00:01:31 I've been in the software industry for about 20 years and doing
00:01:34 programming most of that time and I started out programming in
00:01:38 Visual Basic and moved to scripting and then I moved into object-oriented
00:01:43 languages like C# and spent most of my time in that language.
00:01:47 I've also programmed against SQL Server, so that gives me some
00:01:50 experience with databases, as well.
00:01:53 I co-authored a book on Microsoft Access many years ago and recently
00:01:57 published an app to the Window's 8 app store called Movie Notes,
00:02:00 which I'm very proud of.
00:02:01 >> Gerry O'Brien: Great.
Thanks, Paul, and welcome, glad to have 00:02:05 you here on my team as we present
this MVA. 00:02:09 So a quick overview of what we'll
cover today in our software 00:02:12 development fundamentals.
We've got about seven modules to go 00:02:15 through, so over the next few hours
we'll take a look at some 00:02:18 general software development.
This is where we'll focus on some 00:02:21 of the noncoding aspects of what
a software developer might have 00:02:24 to do on a day-to-day basis.
We'll take a look at the application 00:02:28 life cycle management and little
bit of a discussion on how you 00:02:32 might evaluate technical specifications.
00:02:34 Then we'll start getting into kind of the meat of what we're
00:02:37 going to do in Module 2, core programming.
This will focus a 00:02:40 lot on how computer stores and processing
information, what you 00:02:44 expect to see in terms of working
with some of the different 00:02:48 aspects of programming like decision
structures and repetition 00:02:51 and how programming errors creep
into your code and how you can 00:02:54 work with those successfully to basically
get your program up 00:02:58 and running again.
00:02:59 Module 3 takes a look at object-oriented programming and the
00:03:03 thing that's kind of interesting about the way software development
00:03:03 Module 3 takes a look at object-oriented programming and the
00:03:03 thing that's kind of interesting about the way software development
00:03:05 has changed over the years, folks now start looking more at trying
00:03:10 to model real world objects in the code that they're writing
00:03:13 and object-oriented programming gives us that ability to do that.
00:03:16 So we'll take a look at how we can model those real world objects,
00:03:20 how object-oriented programming plays a very important part in
00:03:23 what you'll do as software developer.
The next couple of Modules, 00:03:27 4, 5 and 6, will give you the opportunity
to take a look at examples 00:03:31 of some of the types of applications
you might be developing.
00:03:34 So we'll focus on web application, take a look at what core just
00:03:38 basic HTML pages look like and then take a look at what a web
00:03:42 application is, how it's hosted on the different platforms and
00:03:46 then give you an example of some of the different desktop applications
00:03:46 application is, how it's hosted on the different platforms and
00:03:46 then give you an example of some of the different desktop applications
00:03:49 you might be focusing on.
So even though the web has become relevant 00:03:53 over the years, folks spend a lot
of time on the internet now, 00:03:56 there is still applications written
for laptop and desktop computers, 00:03:59 so it's important that you understand
what those are and what 00:04:01 you might be involved in developing
from that perspective.
00:04:06 Also in Module 6, we'll take a look at databases, because I would
00:04:09 say about 99% of your applications today focus on data and you
00:04:13 have to access that data somewhere, most of the time it's in
00:04:16 the database, so we'll talk about databases and give you a demo
00:04:19 of SQL Server, show you how you can extract some data, insert
00:04:23 and update information in the database, talk briefly about how
00:04:26 programmers will connect to it and then finally we'll finish
00:04:29 off with a quick discussion on... after you have basically seen
00:04:33 everything in this session, is this for me, do I want to pursue
00:04:36 software development as a career, is this something that interests me?
00:04:39 It doesn't always have to be a career, maybe you're just looking
00:04:42 at it from a hobby perspective and that's perfectly fine, as
00:04:42 It doesn't always have to be a career, maybe you're just looking
00:04:42 at it from a hobby perspective and that's perfectly fine, as
00:04:44 well, but we'll present some resources for you at the end, show
00:04:47 you some links to some training, certifications and how you can
00:04:51 ramp up on some more core fundamentals.
00:04:55 Obviously we want to do a little bit of expectation setting up front.
00:04:58 We want to let you know what we expect you to have in terms of
00:05:02 a mind set and maybe a skill set before you step through this.
00:05:05 Software development is not always an easy process.
Some of 00:05:09 the concepts that you'll learn or
as you go through learning 00:05:12 new programming languages, may be
a little different than what 00:05:15 you are used to, so there are some
things that you might want 00:05:17 to be aware of.
We've listed two bullet points here for target audience.
00:05:21 And first of all, a, it is desire to get started with software
00:05:21 to be aware of.
We've listed two bullet points here for target audience.
00:05:21 And first of all, a, it is desire to get started with software
00:05:23 development, otherwise you wouldn't be here.
So that's kind 00:05:27 of important, you know, this is what
you want to do or think 00:05:30 you want to do and you should have
that in mind.
You should 00:05:33 also be a little bit technically
savvy, and this is kind of an 00:05:36 ambiguous bullet point, what does
technically savvy mean?
00:05:39 Does that mean I need to have an engineering degree, do I need
00:05:41 to understand at deepest level house computer functions internally?
00:05:44 No, that is not what we're saying, but you should be able to
00:05:47 understand technology, you should be able to know how to turn
00:05:49 on a computer, execute programs and start them up and find your
00:05:53 way around file system and things like that, that is kind of
00:05:55 what we're talking about.
00:05:58 We do list some suggested prerequisites and the first one is
00:06:01 kind of logical thinkers, that is a little bit of interesting
00:06:04 bullet point, what is a person who thinks logically.
And as 00:06:09 Paul and I were discussing this the
other day, I kind of brought 00:06:12 up a little bit of a scenario for
him in thinking about most 00:06:15 people have a typical morning routine.
So you get up in the 00:06:17 morning, the alarm clock goes off,
you turn it off, hop in the 00:06:19 shower, you get dressed, you get
out and have breakfast perhaps, 00:06:22 hop on a bus or in your car and head
off to work.
For most people, 00:06:26 we're happy with that and that is
all we need to worry about.
00:06:29 But as software developer or computer programmer, you need to
00:06:32 dig deeper into the concept of that.
So logically thinking, 00:06:36 you're going to have to start breaking
that down into discreet steps.
00:06:39 The alarm clock goes off in the morning.
Well, there is a decision 00:06:42 to be made.
00:06:43 Obviously you are going to turn it off tis annoying, but the
00:06:45 decision is do I pay attention and get out of bed and go to work
00:06:49 or do I play hook and he just stay off and stay home sick and
00:06:53 not go to work today.
00:06:55 So you start getting deeper into these decisions.
When you're 00:06:59 going to take the shower is my next
step there is logical thinking 00:07:02 from that, is the shower available?
If it's not, what am I going 00:07:04 to do next?
That is the kind of thing referring to when I say
00:07:07 logical thinking.
You have to start breaking things down into 00:07:12 discreet steps and think burglar
them from a different perspective.
00:07:15 It would be nice if you do have some experience with scripting
00:07:18 or beginner programming task, although it is not technically
00:07:21 necessary here.
Because we're going to be showing you code for
00:07:24 the samples and the code we're going to show you may be foreign
00:07:28 to you if you have never seen a programming language before.
00:07:30 So if you've got a little bit of that experience then some of
00:07:33 the concepts might be easier to see from the coding perspective.
00:07:37 The ability to understand patterns.
Programming deals a lot 00:07:40 with patterns in the code itself
will talk about how repetition 00:07:44 structures create patterns as we
repeat and iterate through different loops.
00:07:47 We can also talk about patterns present in things such as numbering
00:07:51 system and the different sets and the different aspects of the
00:07:54 code that you'll deal with.
00:07:56 It will become more apparent when we start focusing on things
00:07:59 like our data structures, or when we look at arrays and cues
00:08:02 and lists and stacks and things like that, you'll need to have
00:08:05 the ability to see how patterns are present in these things and
00:08:08 work with them specifically.
00:08:10 And then finally, a grasp of mathematical concepts.
You don't 00:08:13 have to be a mathematician.
You don't need to have gone through 00:08:17 university and gotten a degree in
mathematics certainly, but 00:08:20 understanding some of the general
concepts, such as what is a 00:08:23 set and in programming we deal a
lot with sets, which are specific 00:08:27 values of numbers, text characters,
what have you.
And you should 00:08:31 also understand numbering systems
because when we start dealing 00:08:34 with data types a computer stores
and how it stores them through 00:08:37 the binary concepts, you'll need
to understand the different 00:08:40 numbering systems we have and how
you work with those specifically 00:08:44 in the programming language choosing.
Because computer can't 00:08:47 store infinite amounts of information
our number system in computers 00:08:51 are limited to certain values, so
an understanding of that really 00:08:54 helps as you start working through
your programming career.
00:08:59 Now obviously you're here on the Microsoft Virtual Academy.
00:09:02 If you haven't already joined the MVA community, you should sign
00:09:06 up, you should register for this.
It's a great opportunity to 00:09:09 get free online training targeted
at developers and IT professionals.
00:09:09 up, you should register for this.
It's a great opportunity to 00:09:09 get free online training targeted
at developers and IT professionals.
00:09:14 We've got over one million registered users on the system already,
00:09:17 it's very popular platform, got some great training on here.
00:09:20 Take a look at it.
You know, we're always updating the content 00:09:24 on here so that we become relevant
to what it is you are looking for.
00:09:28 If you see something that is not on there, hey, use the contact
00:09:30 information on the website and suggest some topics, we're more
00:09:32 than happy to add them.
Again, welcome to the MVA community.
00:09:37 And let's take a look at our first module.
So we're going to 00:09:41 focus on general software development
here.
And again, as I 00:09:44 mentioned from the intro, general
software development will focus 00:09:49 on a couple key aspects that are
not specifically related directly 00:09:54 to coding, so you're not going to
be writing code or not presenting 00:09:57 code in this one, but it's more around
the processes that you 00:10:01 can expect to encounter as you start
working as a software developer.
00:10:05 These can be as an individual developer or they can be as you
00:10:08 are working in a larger shop, such as here at Microsoft as software
00:10:12 developer, as well, take a look at application life cycle management
00:10:15 and how to interpret application specifications.
00:10:21 So first of all on Application Life Cycle Management, again this
00:10:24 is something that is not specific to coding, but it is a process
00:10:28 that we use in the industry to help us understand how software
00:10:31 is created and how we go through the implementation, designing,
00:10:36 testing it, deploying and managing it.
So what you typically 00:10:40 find in the industry is a diagram
that looks similar to this.
00:10:44 Now we have five discreet boxes on here, requirements, design,
00:10:50 development, test and maintain and this is what you'll typically
00:10:53 find listed as an Application Life Cycle Management, some people
00:10:57 call it a software development life cycle.
We could even call 00:10:59 this a product life cycle management
and it's not specific to 00:11:05 software development because what
it does, it focuses on...
00:11:08 again, it's a process, it's a key process that helps us get to
00:11:12 where we need to be from our software development life cycle.
00:11:16 We take a look at the box in the top is requirements and typically
00:11:20 this is considered to be the first step in this whole iterative process.
00:11:25 Realistically there is actually one box that we don't see here
00:11:28 that we could have added, which is one called envision.
So typically 00:11:31 before we decide we're going to create
a new product or a new 00:11:35 software application, somebody has
to have a need for it.
00:11:38 And this might be a business, a company, it might even be yourself,
00:11:41 if you are going to be somebody who writes your windows phone
00:11:44 applications or iPad applications, you're the one who is going
00:11:48 to envision this product.
I want to create a software application 00:11:51 that does X, that's envisioning,
that's essentially what it is.
00:11:55 Once you've come up with that vision, you've come up with the
00:11:58 idea that you say, I want to create this application to do X.
00:12:02 You've then got to sit down and figure out what the requirements
00:12:04 if are that application are and what we mean by requirements
00:12:08 is there are specific feature sets.
We want this application 00:12:10 to perform something, we want it
to do something, we want an 00:12:14 end result from it.
As a result, you'll come up with the requirements 00:12:17 that say this is how I want the application
to work, this is 00:12:20 what I want it to do.
00:12:22 The requirements typically end up being a requirements document,
00:12:25 if you're developing this for somebody else, you'll typically
00:12:28 sit with somebody we call a product owner and that product owner
00:12:31 could be the company you are developing the application for.
00:12:34 They'll give you specific requirements that they're looking for,
00:12:37 what they want the application to do and the business problems
00:12:40 they're trying to solve and then you'll document those in the
00:12:44 requirements document itself.
00:12:47 Once that's completed, you might be the person who is creating
00:12:50 the design in the next step.
The design is... could be done 00:12:54 through use of a software architect,
in other words, typically 00:12:57 somebody who understands the software
development process really 00:13:01 well, but also understands the technologies
that you'll build 00:13:03 into this and they will create a
software design talking about 00:13:07 the different technologies they'll
use to create an application 00:13:11 that solves the requirements and
the business problem for the user.
00:13:14 There are different terms used for the software architect.
00:13:18 Microsoft also uses a term called a Program Manager.
00:13:21 They'll typically sit down, read through the requirements and
00:13:24 create something known as a functional specification.
We'll see 00:13:27 that in the next slide when we talk
about the application spec, 00:13:30 couple different names for it, but
essentially we're creating 00:13:33 a design for the application that
might say, you know, how does 00:13:37 the application function and how
are we going to create it on 00:13:40 the specific platform that we're
using?
00:13:42 Another key aspect of this, when we talk about the design, is
00:13:46 we might end up dealing with things called story boards, which
00:13:49 basically kind of dictate the flow through the application, how
00:13:52 users will work with the application and the different components
00:13:55 that make up the application itself.
And those will also consist 00:13:59 typically of mock-ups, where somebody
will take a design program, 00:14:03 oftentimes it could be back-up and
somebody drawing a picture 00:14:06 with pen and paper and saying this
is what we think the user 00:14:09 interface will look like.
That is all a part of the design process.
00:14:13 Once that is completed, we'll pass that off to the software developers,
00:14:17 people who are actually going to write the code.
00:14:19 They may or may not take that design document and then go through
00:14:22 writing something called a technical specification, again this
00:14:26 is another document that they go through the process of creating
00:14:29 in their favorite word processor or some other application where
00:14:32 they want to store the document.
And what it does, it creates 00:14:35 for them, a way of dictating how
they are going to actually create 00:14:40 that functionality and code.
So the functional spec doesn't get 00:14:43 into how we implement it, it says
how we want the program to work.
00:14:48 The technical specification that a developer might create will
00:14:51 say how they are going to do it, what technologies they are going
00:14:53 to use, you know, what types of data structures they'll implement
00:14:58 in there, whether they are going to access data locally, whether
00:14:58 to use, you know, what types of data structures they'll implement
00:14:58 in there, whether they are going to access data locally, whether
00:15:01 it is on back end server, these different aspects typically form
00:15:05 the technical specification and once that's done the coders can
00:15:09 start writing the code itself, they can start doing the development
00:15:11 of the application.
00:15:14 Now the next phase talks about test and one of the things that's
00:15:18 interesting about tests is we can kind of break it up into two
00:15:21 different aspects.
There's testing during the development process 00:15:24 itself and what this involves is
something called Unit Testing.
00:15:28 Most of the times your developers will create something called
00:15:31 a unit test, which is code that they write that tests little
00:15:35 pieces of discreet pieces of functionality that they're writing.
00:15:38 So they can run tests before the code is even completely finished,
00:15:41 then we also have in the development process a whole test team
00:15:45 and their responsibility is to look at the functional specification,
00:15:49 know and understand what the program is supposed to do and then
00:15:52 write automated test routines that go in to check to make sure
00:15:55 the code executes what it's supposed to do.
We have a looping 00:16:00 structure within our code that is
designed to iterate through 00:16:03 a collection of items and output
a specific value, they'll write 00:16:06 an automated routine that checks
to make sure the looping structure 00:16:09 does what it is supposed to do.
00:16:11 We also have other aspects known as user acceptance testing or
00:16:15 business acceptance testing.
So we refer to those as UAD and 00:16:18 BAT, but some people call it BAT,
but it depend on your pronunciation 00:16:22 of it.
But what that is, the code is almost at state we are ready
00:16:26 to release it, we let the users play with it, let the business
00:16:30 take a look and make sure it meets requirements that they laid out.
00:16:35 We test it in the user's hands.
One thing I used to tell the 00:16:40 students that I taught in computer
programming was, you could 00:16:43 create the greatest application in
the world and think you have 00:16:46 absolutely no bugs in your code and
you've tested it and it works, 00:16:50 but that is because you know how
it functions and you give it 00:16:52 to the user and probably within about
five minutes they're going 00:16:55 to do something you didn't expect
them to do and they have just 00:16:57 broke your application.
So user acceptance test suggest very important.
00:17:01 To give you better idea where you might find that, consider beta
00:17:05 test, beta software that gets released.
And Microsoft does this 00:17:09 all the time.
We release beta version of the product for people
00:17:12 to test and bang on and collect feed back over issues, bugs that
00:17:16 might pop up in the code itself and we fix them before we do
00:17:19 the final release of the product.
00:17:22 Our next phase talking about maintaining the application once
00:17:25 it is actually available.
00:17:27 Again, there is an extra box that sort of sits between the test
00:17:30 and the maintain that we don't have here.
And sometimes it's 00:17:34 put in there, sometimes it's not
because it is kind of implicit, 00:17:38 before we maintain the software,
we have to deploy it.
This means 00:17:41 we are getting it out to the customer,
they have it in their hands.
00:17:44 We deployed it to their system, we're running it on the computers
00:17:47 and they are ready to start using it on day to day basis.
00:17:50 The maintenance phase means we could have in our application
00:17:55 instrumentation, which means that as the application runs, we
00:17:59 record specific pieces of information about how it operates,
00:18:03 maybe it's for performance checking.
It could be if there are 00:18:06 other bugs or errors that pop up
that we didn't discover in the 00:18:09 testing phase.
We write them to a log so that later we can look
00:18:12 and what the issues were.
It is important for that maintenance 00:18:15 phase, becaues software application
don't get written and deployed 00:18:19 and forgotten about while the users
go through the process of 00:18:22 using them in their day to day lives.
We typically maintain that.
00:18:25 What we mean by maintaining, fixing bug or coming out with next
00:18:29 major release.
Over the past few years, one of the biggest things
00:18:33 we've had to focus on, not at Microsoft but all companies doing
00:18:36 software development, security of the software itself.
And you 00:18:41 know, we release patches on regular
basis.
If you are not familiar 00:18:44 with something called Patch Tuesday,
that's probably the reason 00:18:48 why your computer reboots on Wednesday
morning or late Tuesday 00:18:51 night if you leave it running because
we're sending out patches 00:18:53 to software as we discover issues
and problems with the Microsoft 00:18:57 software that you use.
That is a part of maintaining.
It might 00:19:00 also be that we're creating new versions
of the product, so again 00:19:03 if you take a look at the Microsoft
Windows operating system, 00:19:07 how many versions have we gone through
over the years from that?
00:19:10 That is an example of maintaining the software that we've deployed.
00:19:14 Again this is your application life cycle management, not really
00:19:17 involved with coding, but it specifically talks about process
00:19:20 that you can expect to be involved in as a software developer.
00:19:23 >> Paul Pardi: Gerry, before you move on.
You said something 00:19:26 before interesting that this process
applies to many different industries.
00:19:31 So you might see this model in auto motive industry are or anybody
00:19:35 who makes a widget or piece of hardware.
What might be a little 00:19:39 bit different about software, software
developers might go through 00:19:42 this cycle multiple times in a week
or a month.
You're working 00:19:46 through requirements.
You're working through design for new features 00:19:49 that you are building, in that maintaining
phase, you are fixing bugs.
00:19:53 You might go through this entire cycle multiple times as you
00:19:56 are developing new features, which I think is a little bit different
00:19:59 than other industries when we think about how software is developed.
00:20:02 >> Gerry O'Brien: Yeah, and that's a good important point, Paul,
00:20:04 thanks for bringing it up.
One thing I forgot to mention, if 00:20:07 you look at this diagram we have
are if the application life 00:20:10 cycle management, you see the arrows
between the boxes and it 00:20:13 kind of cycles, so that let's you
know that this is an iterative process.
00:20:17 We can be doing this continuously over and over again.
00:20:21 As Paul mentioned for different industries outside of software
00:20:24 development, they may do this whole process for creating a part
00:20:28 for a car, and they'll design and create the part itself and
00:20:31 then they'll test and it doesn't work, well, we got to go through
00:20:33 this whole process.
Yeah, great interjection, thanks, Paul.
00:20:37 All right.
So we'll take a quick look at an application specification.
00:20:42 Now sometimes these are called functional specifications, sometimes
00:20:46 there's different names for them.
But again this is a part of 00:20:49 a process, this is a part of a software
development, life cycle 00:20:53 process that we just explained.
And you'll find these come in 00:20:53 a process, this is a part of a software
development, life cycle 00:20:53 process that we just explained.
And you'll find these come in 00:20:56 different forms and the example that
I'll give you here is just 00:20:59 one that I was actually involved
in, I wrote this one up for 00:21:03 internal application that I was working
on, not as a developer, 00:21:07 but as a program manager here a little
while ago, probably about 00:21:10 a year or two back.
And to give you an example of what it might 00:21:13 look at, I'm showing you here, I
have section 4, section 5, there's 00:21:19 obviously three sections ahead of
it.
So you'll end up with 00:21:22 things in it that are like an executive
summary of what this 00:21:25 is, you know, why we're doing this
and then there will be something 00:21:25 things in it that are like an executive
summary of what this 00:21:25 is, you know, why we're doing this
and then there will be something 00:21:29 that says what is the current state,
what's the issue, what's 00:21:32 the problem we're trying to solve
and there might be another 00:21:34 section that says how we are going
to get to solving this problem.
00:21:37 But the key parts of what the developer will focus on are these
00:21:41 two sections that we're looking at here.
So there is a feature 00:21:44 list and then there is a feature
overview.
If it you look at 00:21:47 the feature list, you see we've got
high level bullet points 00:21:50 here and then we kind of drill down
a little bit deeper into 00:21:53 the bullet points.
And to give you kind of an idea of what the 00:21:56 application spec is all about, looking
at item number six, we're 00:22:00 talking about price checking.
This is a specific discreet functionality 00:22:04 that we need this process to look
at.
And so we need to validate pricing.
00:22:09 We see as a part of that, there are three different aspects.
00:22:12 We need to get the product pricing from a spreadsheet.
Now in 00:22:16 this case, it was from a spreadsheet,
but it could be from any 00:22:18 other data source.
We want to take a look at all the courses 00:22:22 we published on that system and pull
the pricing back from that 00:22:22 other data source.
We want to take a look at all the courses 00:22:22 we published on that system and pull
the pricing back from that 00:22:25 and then we need to do a price comparison.
And it's just a validation 00:22:29 routine to make sure what we have
set in our pricing back end 00:22:32 is reflected on the pricing front
end.
So also notice that there's 00:22:36 no specific implementation detail
of how we're going to do this, 00:22:40 this is just saying this is a functionality,
this is what we 00:22:43 need the program to do.
00:22:46 We get a little more in depth, if you will, in the feature overview,
00:22:49 and what we talk about here is kind of a story about how these
00:22:53 features are intended to work.
So the bullet points are very 00:22:56 high level.
Developers can come back and focus on those as reference
00:22:59 point, the feature overview talks more about the problems we're
00:23:03 trying to solve and how we want to get there.
So again, you 00:23:06 might find different versions of
functional specs or application 00:23:06 trying to solve and how we want to
get there.
So again, you 00:23:06 might find different versions of
functional specs or application 00:23:09 specs out there, remaining sections
that you don't see in this 00:23:13 document or other things we would
create such as user stories.
00:23:17 There's all kinds of object-oriented programming designs that
00:23:21 we can add in here.
We can use tools such as Microsoft Visio, 00:23:24 to create use case diagrams, where
we show little actors and 00:23:28 how they interact with different
components of system and different 00:23:30 things like that.
So this is not anywhere near a complete application specification.
00:23:37 They could be typically 20, 30 or more pages worth of documentation,
00:23:41 depending on the complexity of the project itself.
Again, it's 00:23:44 just designed to give you an idea
of what you can expect to be 00:23:47 reading for you to translate that
the application is intending 00:23:52 to do and how you take a look at
those from the perspective of 00:23:55 a developer ready to write code for
it.
00:23:57 >> Paul Pardi: Yeah, and documents like these are typically created
00:24:00 in the first two phases of that cycle, that life cycle that Gerry
00:24:04 talked about earlier.
I also think it's important in the design 00:24:07 phase to think in terms of two different
aspects of a program.
00:24:11 So you're going to write a program where there are parts of the
00:24:14 program the user will never see.
It's just functionality and 00:24:17 the program will do certain things.
But then there is also the 00:24:20 parts the users interact with, that
was the aspect of the story 00:24:24 board that Gerry had talked about.
Every program will have something 00:24:27 that the user interacts with and
something the user will never see.
00:24:31 I think in the design phase you figure out what the parts are
00:24:34 and the specification will call out the user interface and then
00:24:37 the functionality behind the user interface.
00:24:39 >> Gerry O'Brien: Yeah, exactly.
Great way of looking at it, as well.
00:24:42 You know, so again it's there are different aspects to the software
00:24:46 development process and it is not always as simple as you are
00:24:49 just sitting there writing code and expect the application to work.
00:24:52 So a lot of the times bits and pieces come ahead of that.
All right.
00:24:56 So just to recap.
00:24:58 In Module 1 we took a look at the application specification and
00:25:02 the application life cycle management and how those form a part
00:25:05 of what a developer will experience in their day-to-day work
00:25:09 as they are creating software applications.
00:25:12 So Paul, we finished Module 1 and we hope that you'll come back
00:25:15 and join us for Module 2, which will be coming up next, where
00:25:18 we'll focus on some of the core programming concepts.
00:25:21 Again, kind of laying the foundation for what you'll need to
00:25:24 know to start on your software development career.
00:25:27 >> Paul Pardi: Look forward to it.
For more infomation >> Initiative Au ptit blosneur - Duration: 3:37.
For more infomation >> Sigma Cinema Lenses - Hands on - Duration: 5:26. 
For more infomation >> 【日本便利店】日本便利店必買!?爆辣薯條餅乾!!!!到底有多辣!?日本便利店|日本のコンビニエンスストア|Japan's convenience store - Duration: 3:42. 
For more infomation >> Opel Corsa 1.3 CDTi EcoFlex S/S Business+ - Duration: 0:58.
For more infomation >> Jaguar S-Type 3.0 V6 Executive - Duration: 0:37.
For more infomation >> Fiat Seicento 1.1 S STUURBEKRACHTIGING 23000KM! - Duration: 1:01.
For more infomation >> Opel KARL INNOVATION 1.0 S/S 75PK - 1.000,- KORTING - Duration: 0:58.
For more infomation >> Nissan Micra 1.2 DIG-S Acenta - Duration: 0:58.
For more infomation >> Mercedes-Benz S-Klasse 600 SE V12 Volledige TOP STAAT !! - Duration: 0:55.
For more infomation >> Suzuki S-Cross 1.6 EXCLUSIVE ( Navi, Panodak, Clima ) - Duration: 1:00.
For more infomation >> Miracle Channel INSIGHT Mar. 28, /'17 CLC Interview - Duration: 30:05.
For more infomation >> Voix Publiques - Benjamin Farhat parle de Laïcité - Duration: 3:37. 
For more infomation >> CHUUUT FAIS DODO - Duration: 2:36.
For more infomation >> Seat Leon 2.0tfsi fr 147kW(200pk) leer dealer onderhouden - Duration: 0:40.
For more infomation >> Fiat Grande Punto 1.4 16V Emotion Sport /AIRCO/Climate/Cruise control/CV/17'LM/Elek. ramen! - Duration: 1:01.
For more infomation >> AMV - ДАЙ РУКУ МНЕ - Anime World Music ♫ - Duration: 2:11.
For more infomation >> UFO: Afterlight (Reticulan 2.0 mod) - Walkthrough / Videonávod - 67 - [ENG/CZ] - Duration: 36:44.
For more infomation >> Das Öko-Auto | Zur Sache Baden-Württemberg - Duration: 2:03. 
For more infomation >> [Entrevista] Los nuevos medios por... Ana Magalhães - Duration: 1:19.
For more infomation >> BMW X1 1.8D SDRIVE face lift - Duration: 0:52.
For more infomation >> Kia cee'd 1.6 GDI Plus Pack - Duration: 0:43.
For more infomation >> Kia cee'd Sportswagon 1.6 GDI ComfortPlusLine - Duration: 0:52.
For more infomation >> JE ME LANCE DANS L' APICULTURE ! - Duration: 6:50.
For more infomation >> شاورما بشرائح الديك الرومي سهلة و لذيذة مقدمة بشكلين chawirma d'escalopes de dind - Duration: 5:01.
For more infomation >> Kia cee'd 1.6 CRDi 128 PK Comfort Pack | Trekhaak | Diesel | - Duration: 0:52.
For more infomation >> Volvo V50 1.6D EDITION II SPORT NETTE AUTO TREKHAAK - Duration: 0:58.
For more infomation >> MINI Clubman 1.6 COOPER D Zwart Leder, Navi, Airco, Stoelverwarming, Zwarte Hemel, PDC, Xenon !!!! - Duration: 0:57.
For more infomation >> Sen. Kaine: Trump admin is trying to stay cozy with Russia - Duration: 2:12.
For more infomation >> PESADELO - APRENDENDO PORTUGUÊS COM JOGO BRASILEIRO - Duration: 12:13. 
For more infomation >> Interview mit einem Bild #8 „Schiff mit Matrosen beim Gelage" von Hans Holbein d. J. - Duration: 4:32.
For more infomation >> ❤sucalet ❤ ( subs) couple extreme workout challenge - oppa y yo- - Duration: 8:01.
For more infomation >> Hyundai ix20 i-Motion MPV HOGE INSTAP AIRCO CD CV ZUINIG EN ZEER MOOI!! - Duration: 0:59.
For more infomation >> チャンネル登録者50人突破!!日頃の感謝を込めて、記念動画!! - Duration: 4:54.
For more infomation >> 3 Fragen an Dörte Hansen - Duration: 4:43.
For more infomation >> Voodoo - L'alchimie parfaite créée pour vos plantes (Terreaux et Engrais) - Duration: 0:32.
For more infomation >> 5 Facts, Sony Xperia XA - Full Specs Review - Duration: 17:12. 

For more infomation >> Volkswagen Golf Plus 1.6 FSI Trendline - Duration: 0:55. 
No comments:
Post a Comment